我正在制作一个函数,它可以找到总和为 9 的两个值的索引 var twoSum = function(nums, target) { let obj ={}; const result = []; for(let i =0; i< nums.length; i++){ if(obj[nums[i]]){ result.push(obj[nums[i]]); result.push(i); } let a = target - nums[i]; obj[a] = i; console.log(obj) } console.log(result) }; twoSum([2 ,4 ,7 ,8 ], 9);//输出{ 7: 0 }{ 5: 1 , 7: 0 }{ 2: 2 , 5: 1 , 7: 0 }{ 1: 3 , 2: 2 , 5: 1 , 7: 0 }这里的项目以某种随机的方式附加到对象上。相反,他们应该一个接一个地添加为什么?
2 回答
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
键按数字排序。看一下这个:
const obj = {};
obj[3] = 'a';
obj[2] = 'b';
obj[1] = 'c';
console.log(obj);
// { '1': 'c', '2': 'b', '3': 'a' }
JavaScript 中的数组只是带有数字键的对象。您已经在以最糟糕的方式创建一个数组。正如凯尔所说,如果您想直观地维护顺序,请使用数组。
添加回答
举报
0/150
提交
取消
