- 给一个目标数字,一个数组,求数组中是否存在相加等于目标数的两个值,如果存在返回数组对应的下标
function twoSum (nums, target){
// 思路:先遍历外层,内层在遍历一个看有误 target-nums[i]=nums[j]的存在,存在就立马跳出函数并返回下标
let obj =new Map();
for(let i=0;i<nums.length;i++){
let currenNum = target - nums[i];
if(obj.has(currenNum)){
return console.log([obj.get(currenNum),i]);
}
obj.set(nums[i],i);
}
};
let nums = [2,7,11,15];
let target = 9;
twoSum(nums,target);
总结
- 知识点主要用到了es6的Map数据结构:字典,一些元素的集合,每个元素都由唯一的key做键名
map.has()
在map对象里查找对应键名,返回值为布尔类型,有返回true,无返回false