Javascript 数组键循环检查
Javascript array keys loop through checking
有一个包含键值对的数组,其中的键将包含一个可操作的 id。问题是我打算实现检查键值的概念,即如果数组中存在键,则检查值;否则它将为新的唯一 ID 创建一个新的键值对。我寻找 Object.keys() 函数,我发现它只会 return 键数组。我倾向于在 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
}
}
}
如果我对你的问题的理解正确,你想添加一个新的 key/value 对(如果它不存在)。
这种情况最好使用对象或 ES6 Map。
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);
有一个包含键值对的数组,其中的键将包含一个可操作的 id。问题是我打算实现检查键值的概念,即如果数组中存在键,则检查值;否则它将为新的唯一 ID 创建一个新的键值对。我寻找 Object.keys() 函数,我发现它只会 return 键数组。我倾向于在 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
}
}
}
如果我对你的问题的理解正确,你想添加一个新的 key/value 对(如果它不存在)。
这种情况最好使用对象或 ES6 Map。
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);