两数之和,通过数组返回对应的下标

115 阅读1分钟

要求:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。

function sum(nums, target) {
    const map=new Map()
    for(let i=0;i<nums.length;i++){
        const num=target-nums[i]
        if(map.has(num)){
            return [map.get(num),i]
        }else{
            map.set(nums[i],i)
        }
    }

};

思路:使用es6中的Map()方法,主要用到的是使用到了Map对象中的has(),set(),get()方法,简单的介绍一下这几个方法:

  1. map.has(key)方法返回一个布尔值,表示某个键是否在Map当中。
  2. map.set()方法设置key所对应的键值,然后返回整个Map结构。如果key已经有值,则键值会被更新,否则就新生成该键。
  3. map.get()方法读取key对应的键值,如果找不到key,返回undefined。