需求:如果说有一个数组,当这个数组中的任意两个数相加等于我所设定的定值时,那么就获取到这两个数组的下标。前提,必须是下标不同的两个数字
1.map.has()返回的是布尔类型,判断是否存在该值
2.map.get()返回了该值在数组中的下标
3.map.set( a, b),将b赋予a
function twoSum(nums,target){
const map = new Map()//创建map用来存储所有的键值对
for(let i = 0;i <nums.length;i++){
let rest = target - nums[i] //获取另一位数
if(map.has(rest)){
return [map.get(rest),i] //如果返回值是true,则return另一位数的下标和i值
}
else{
map.set(nums[i],i)//如果没有的话,将i值保留给当前的num数值,以方便下一次进行for循环时使用
}
}
}