我是javascript的新手。我正在尝试使用键值对构建一个数组,并且我已经成功完成了。
这是我目前的输出:
现在我想要的是检查数组中每个对象的键。如果该键已经存在,那么该对应键的值将被更新,否则将插入一个带有其值的新键。
我的代码:
function pushToAry(name, val) {
//alert("In the array");
var flag=1;
kony.print("name-->"+name+" val-->"+val);
for (var i in ARY) {
kony.print("ARY[i].name-->"+ARY[i].name+" ARY[i].val-->"+ARY[i].val);
if (ARY[i].name == name) {
kony.print("In if");
ARY[i].val = val;
flag=0;
break; //Stop this loop, we found it!
}else{
kony.print("In else");
}
}
if(flag==1){
kony.print("flag is 1-->"+flag);
var obj = {};
obj[name] = val;
ARY.push(obj);
}
}
我的上述代码无效。 ARY [i] .name和ARY [i] .val未定义。
ARY是一个定义为ARY=[];
我在这里做错了什么?
答案 0 :(得分:1)
这应该有效
function pushToAry(name, val) {
for (var i = 0; i < ARY.length; i++) {
if (ARY[i].hasOwnProperty(name)) {
ARY[i][name] = val;
return;
}
}
var obj = {};
obj[name] = val;
ARY.push(obj);
}
function init() {
ARY = [];
pushToAry("Label", 1000.0);
pushToAry("Label", 1000.1);
console.log(`ARY has ${ARY.length} entries`);
console.log(`ARY[0].Label: ${ARY[0].Label}`);
}
document.addEventListener( "DOMContentLoaded", init, false );