javascript - JS怎么遍历json数组
PHP中文网
PHP中文网 2017-04-11 11:35:34
[JavaScript讨论组]

就是比如说

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

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

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(8)
ringa_lee

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 } ]
>
PHPz

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";
    }
}
PHP中文网
Arr.forEach(function(obj){
    console.log(obj)
})
ringa_lee

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

PHP中文网
jsonarr.map(function(item, index) {
    return item.selId == 12 ? item.action = "just" : item;
})
黄舟

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号