【问题标题】:update json property value using loop使用循环更新 json 属性值
【发布时间】:2016-04-12 08:47:33
【问题描述】:
[{id:1,price:10},{id:2,price:20}]

如何将 ID 为 2 的对象数组的价格更新为 200?

var obj = [{id:1,price:10},{id:2,price:20}];
for(var i=0;i<obj.length;i++){
        if(obj[i].id == 2){
          //what to do here?
        }
      }

我可以继续推和拼接等,但挑战也是保持位置。

【问题讨论】:

    标签: javascript json loops


    【解决方案1】:

    你可以这样做:

    obj[i].price = 200;
    break;
    

    break 将阻止您继续循环遍历所有项目(因为您找到了要搜索的项目)。

    【讨论】:

    • 我认为对象文字甚至不需要循环来访问属性...
    • 这和return false一样吗?
    【解决方案2】:

    或者更短的Array#forEach():

    var obj = [{ id: 1, price: 10 }, { id: 2, price: 20 }];
    
    obj.forEach(function (a) {
        if (a.id === 2) {
            a.price = 200;
        }
    });
    
    document.write('<pre>' + JSON.stringify(obj, 0, 4) + '</pre>');

    【讨论】:

    【解决方案3】:
    [{id:1,price:10},{id:2,price:20}].forEach(function(a){ (a.id===2) ? a.price=200 : a});
    

    【讨论】:

      猜你喜欢
      • 2020-09-08
      • 2014-12-19
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-16
      相关资源
      最近更新 更多