有一个数组包含键值对,键将包含一个操作ID。问题是我打算实现一个检查键值的概念,即如果键存在于数组中,则值将检查;否则它将为新的和唯一的id创建一个新的键值对。我找了 Object.keys()函数,我发现它只会返回键数组。我倾向于在for循环中逐个检查密钥。
对不起,如果我没有很好地解释我的问题
代码:
var marks = new Array();
function totalScore(critId,score){
var compare = Object.keys(marks);
var result = 0;
for(var i = 0; i < marks.length; i++){ //Looping in marks array
for(var j = 0; j < compare.length; j++){ //Looping in compare array
if(compare[j] == marks[i]){ //Comparing the key of the arrays
marks[i] = score; //If matched update the value of the current key
result ++;
}
}
if(result == 0){ //If there are no result of the comparison
marks.critId = score; //Add new key value pair to the array
}
}
}
答案 0 :(得分:0)
如果我正确理解您的问题,您希望添加新的键/值对,如果它不存在。
在这种情况下使用对象或ES6地图会更好。
var marks = {};
function totalScore(critId, score) {
if(!(critId in marks)) marks[critId] = score;
}
totalScore(1, 5);
totalScore(2, 8);
totalScore(1, 4);
console.log('marks', marks);
&#13;