JS怎么遍历json数组

就是比如说

var jsonarr=[{"name": "乌龙茶",
       "selId":11
    },{
       "name": "绿茶",
       "selId":12
    },{
       "name": "红茶",
       "selId":13
    }]

如果想要在"selId":"12" 那个对象里面添加一个值 "active":"on" ,怎么根据的selId来找到这个对象,并且添加进去(不能用第几个来找到,因为这三个对象顺序可能会变)

阅读 22.9k
8 个回答

es6

> var jsonarr=[{"name": "乌龙茶",
...        "selId":11
...     },{
...        "name": "绿茶",
...        "selId":12
...     },{
...        "name": "红茶",
...        "selId":13
...     }]
undefined
> jsonarr.forEach((x)=>{if(x.selId==12)x.active='on'})
undefined
> jsonarr
[ { name: '乌龙茶', selId: 11 },
  { name: '绿茶', selId: 12, active: 'on' },
  { name: '红茶', selId: 13 } ]
>

jsonarr.forEach((item) => {
console.log(item);
});

啊,低配版

for (var i in jsonarr) {
        if(jsonarr[i].selId==12){
            jsonarr[i].active = 'on';
            break;
        }
    }

低低配版。。。

var jsonarr = [{
    "name": "乌龙茶",
    "selId": 11
}, {
    "name": "绿茶",
    "selId": 12
}, {
    "name": "红茶",
    "selId": 13
}];
for (var i = 0, l = jsonarr.length; i < l; i++) {
    if (jsonarr[i].selId == "12") {
        jsonarr[i]["active"] = "on";
    }
}
新手上路,请多包涵
Arr.forEach(function(obj){
    console.log(obj)
})

如果Id唯一的话,个人觉得最好用最简单的for循环,因为找到目标元素就可以了,没必要遍历所有的元素。

新手上路,请多包涵
jsonarr.map(function(item, index) {
    return item.selId == 12 ? item.action = "just" : item;
})

超超超级低配版,foreach循环便利然后找到selId == 12,然后添加action = "on",毕竟超超超级低配版,所以没代码- -

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏