最简单 , 最基础的。
如果不会 , 请写会 ,请掌握,请让心安定
给定一个数组 nums 和一个目标值 target,在该数组中找出和为目标值的两个数
const nums = [1, 2, 3, 4, 5, 6, 7, 8]
const target = 5
function find(nums, target) {
let map = {}
for (let i of nums) {
if (map[target - i] !== undefined) {
debugger
return [target - i, i]
}
map[i] = i
}
}
console.log(find(nums, target)) // [2, 3]
小回顾 for in 和for of
- for in 是很早之前就有的,es6之前,可以用来遍历对象的key , 通过key ,以及item[key]拿到对象的键值。
- 当然再回顾下,遍历对象还可以用Object.keys() , Object.value(), Object.entries()
- 当遍历数组时,当前项item就是数组的下标索引
- 遍历字符串时,是字符串的下标index
缺点是会遍历数来原型方法上的属性方法,需要配合hasOwnProperty()方法一起使用,一般不建议使用
- 然后es6之后有了for of 可以用来遍历数组,其中for of遍历数组,item就是数组本身的当前项,遍历字符串一样。
- 遍历字符串item就是字符串的当前项目
- 可以遍历伪数组,就是带Iterator的
回顾对象遍历的其他方式
let result = Object.entries(obj)
let result2 = Object.keys(obj)
let result3 = Object.values(obj)
for (let a of result){
console.log(a[0])
}