javascript - 在 for/if 循环中添加新键并更改值
问题描述
我目前的目标是获取数组整数中的项目,并根据键在整数中出现的次数创建一个键对值。我的逻辑是:对于整数中的 i,如果 i 已经是整数 2,则将该键的值增加 1。如果它不存在,则创建该键并将其与值 1 配对。现在已经有几个小时了经过大量的谷歌搜索后,我似乎无法找到我的逻辑在哪里搞砸了。
//require realdine-sync module
var readlineSync = require('readline-sync');
//initialize variable and list
var integer;
integers2 = {};
var integers = [];
//user input
integer = readlineSync.question('Integer?: ')
//check user input and append any integer besides 0
while (integer != 0 && integer >= 1 && integer <= 100){
console.log("not 0!")
integers.push(integer)
integer = readlineSync.question('Integer?: ')
}
console.log(integers);
for(i in integers){if (i in integers2){integers2[i] += 1}else{integers2[i] = 1}
}
console.log(integers2)
解决方案
let integers2 = {}
integers = [5, 4, 5, 2, 4, 7, 5];
// you were using 'in' instead 'of', 'in': gives you index , 'of'?: gives you value of array
for (let i of integers) {
if (integers2[i]) { // if key exist increment value by one
integers2[i] += 1
} else { // else add 1 as the first value
integers2[i] = 1
}
}
console.log(integers2);
推荐阅读
- python - 如何使用 ZeroMQ 将 MQL4/5 中的消息从 MetaTrader 终端发送到 python?
- angularjs - 在 Angular/AngularJS 混合应用程序中使用服务(ng-upgrade)
- java - 可变长度参数列表(使用 Get)
- dart - 如何在 Flutter 中更改键盘上的文本输入操作按钮(返回/回车键)?
- javascript - Jquery表单在验证前提交
- url - 创建指向移动应用程序的链接
- makefile - 依赖子目录中的所有文件(git子模块)
- python - 如何使用 django-neomodel 设置 Django settings.py
- arrays - Ruby Array 的 Hash 解析
- javascript - 结果在 firebase 上的多个查询中过滤