【发布时间】:2022-01-12 01:23:22
【问题描述】:
我正在为二和leetcode 问题实现哈希映射。
const testArrs = {
'first': [2,7,11,15],
'second': [3,2,4],
'third': [3,3]
}
function twoSum(nums, target) {
let mapped = nums.map((item) => target - item);
let returnedArr = mapped.filter((item) => {
if (nums.includes(item)) {
console.log(nums.indexOf(target-item))
return nums.indexOf(target - item)
}
})
console.log(returnedArr)
//TODO check if returnedArr size == 2.
}
twoSum(testArrs['first'], 9)
第一个数组mapped 创建一个哈希数组作为“索引”,它们是目标与nums 数组中每个元素的差异。然后我对映射数组应用过滤器以查看映射数组的 2 个元素是否包含在 nums 数组中,并返回这些元素的索引。
当索引被过滤到 returnedArr 时,它似乎返回 nums 的第一个元素而不是两个索引。 [2] 而不是 [0,1] 返回之前的日志显示它分别正确地注册了索引 0 和 1。
【问题讨论】:
标签: javascript arrays