在 for 循环中递增 JavaScript 对象中的值
Posted
技术标签:
【中文标题】在 for 循环中递增 JavaScript 对象中的值【英文标题】:Incrementing values in a JavaScript object in a for loop 【发布时间】:2022-01-13 20:26:36 【问题描述】:要求返回第一个唯一值的特定问题(即在数组中只出现一次的值)。我的方法是创建一个 obj,其中键作为数组中的元素,值作为每个值出现次数的计数器。
function solution(arr)
let uniqueObj =
for (let i=0; i<arr.length; i++)
if(uniqueObj[arr[i]] !== undefined)
uniqueObj[arr[i]] = uniqueObj[arr[i]] + 1
uniqueObj[arr[i]] = 1
console.log(uniqueObj)
solution([4,10,5,4,2,10])
//output '2': 1, '4': 1, '5': 1, '10': 1
为什么每次看到相同的键时值都不会增加?
【问题讨论】:
您正在使用 uniqueObj[arr[i]] = 1 将其重置为 1 该行应该在else
块中。
顺便说一句,您可以使用++
来增加一个值,因此您不必将整个表达式写两次。
【参考方案1】:
在 if 语句之后,您将 uniqueObj[arr[i]]
重置为 1。当 uniqueObj
没有 arr[i]
的值时,您需要添加一个 else 子句:
if (uniqueObj[arr[i]] !== undefined)
uniqueObj[arr[i]] += 1;
else // add else block
uniqueObj[arr[i]] = 1
【讨论】:
以上是关于在 for 循环中递增 JavaScript 对象中的值的主要内容,如果未能解决你的问题,请参考以下文章