需求:如果说有一个数组,当这个数组中的任意两个数相加等于我所设定的定值时,那么就获取到这两个数组的下标。前提,必须是下标不同的两个数字
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循环时使用
}
}
}
这篇博客探讨了一个利用JavaScript中的Map数据结构解决数组中寻找两个数的下标的问题,当这两个数相加等于目标值时。文章详细介绍了如何通过遍历数组,利用Map的has()方法检查是否存在互补值,get()方法获取下标,以及set()方法存储键值对,最终实现找到满足条件的数对下标。
1490

被折叠的 条评论
为什么被折叠?



