力扣大佬题解:
var twoSum = function(nums, target){
const map = new Map();
for(let i=0; i<nums.length; i++){
if (map.has(nums[i])){
return [map.get(nums[i]),i];
}else{
map.set(target-nums[i],i);
}
}
}
菜鸡理解:
一.map()方法
1.map()方法定义在JavaScript的Array中,它返回一个新的数组,数组中的元素为原始数组调用函数处理后的值。
2.map()不会对空数组进行检测
3.map()不会改变原始数组
二.解题思路
1.for循环遍历nums,
2.判断map中是否能找到满足条件targent-nums[i]的值
3.如果没用则进行设置
也就是说在map中设置targent-nums[i]的值
例如twoSum([2, 7, 11, 15], 9),i循环第一次,map中没有2,则设置map的值为[7],i循环第二次,map.has(7),返回[0,1].