简体   繁体   English

如何使用angular.js向数组添加新的键和值?

[英]How to add new key and value to array using angular.js?

I have 3 object in array, for the first object i want to add ifContrbtd:false and for remaining 2 objects i want to add ifContrbtd:true . 我在数组中有3个对象,对于第一个对象,我想添加ifContrbtd:false ,对于其余2个对象,我想添加ifContrbtd:true I have tried like following but it added ifContrbtd:true to 2nd and 3rd object, nothing is added to first object. 我已经尝试过以下操作,但是它向第二个和第三个对象添加了ifContrbtd:true ,但没有添加任何内容到第一个对象。

for (var key in res.result) {
    var ifContributed = false;
    if(res.result[key].newField != undefined){
        ifContributed = true;
        res.result[key]['ifContrbtd']=ifContributed;
    }               
}

You should move the assignment outside the if condition so that ifContributed = false is assigned for objects having newField . 你应该将外部的分配if使病情ifContributed = false被分配给具有对象newField Right now nothing will be assined if it is defined: 现在,如果已定义,则不会有任何后果:

for (var key in res.result) {
  var ifContributed = false;
  if (res.result[key].newField != undefined) {
    ifContributed = true;
  }
  res.result[key]['ifContrbtd'] = ifContributed;
}

You have to put assign value to res.result[key]['ifContrbtd'] after the if statement not inside it. 您必须将if语句之后的赋值赋给res.result [key] ['ifContrbtd']。

Just below 3 lines will solve your issue: 只需3行以下即可解决您的问题:

for (var key in res.result) {
    var ifContributed = (res.result[key].newField != undefined);
    res.result[key]['ifContrbtd'] = ifContributed;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM