解题思路:
1.创建一个map
2.for循环渲染nums数组
3.用target - i,计算哪个数可以和当前数字想家得到target
4.检查map里面有没有这个数,如果有则返回结果,如果没有则将num[i]当作key,i当作value(方便map.has()查找)
function Sum(nums, target) {
let map = new Map();
for (let i = 0; i < nums.length; i++) {
const complement = target - nums[i];
if (map.has(complement)) {
// 通过map.get()获取到当前数字的index,和i一并通过数组方式返回。
return [map.get(complement), i];
} else {
//如果map中没有这个数的话就把这个数字存为key,把他的index存为value
map.set(nums[i], i);
}
}
return [];
}
console.log(Sum(nums, target));