【问题标题】:Creating and Updating JSON创建和更新 JSON
【发布时间】:2013-02-18 18:50:18
【问题描述】:

我可以在这里创建一个 Json 对象 How to create json by javascript for loop? 伟大的! 我创建了一个像下面这样的

[
    {
        "id": "10",
        "userName": "kuttan" 
    },
    {
        "id": "11",
        "userName": "kunjan" 
    }
]

假设我想将 id 为 10 的用户的名称更新为“新名称” 我该怎么办?(我不知道索引是1)

【问题讨论】:

    标签: javascript json


    【解决方案1】:

    遍历您的对象数组(因为它就是这样),并检查每个对象的“id”属性。

    var list =  [ { "id": "10", "userName": "kuttan" }, { "id": "11", "userName": "kunjan" } ];
    
    for (var i=0;i<list.length;i++) {
      if (list[i].id == "10") {
        alert(i);
      };
    };
    

    然后你可以把它抽象成一些不错的函数。

    function findIndexById(list, id) {
      for (var i=0;i<list.length;i++) {
        if (list[i].id == id) {
          return i;
        };
      };  
    
      return -1;
    };
    

    然后按如下方式使用:

    var list =  [ { "id": "10", "userName": "kuttan" }, { "id": "11", "userName": "kunjan" } ];
    var index = findIndexById(list, "10");
    
    if (index !== -1) {
      list[index].userName = "new username";
    };
    

    【讨论】:

      【解决方案2】:

      您可以遍历数组并检查当前迭代中对象的 id 属性。如果是 10,则将新用户名分配给 userName。

      var json = [ { "id": "10", "userName": "kuttan" }, { "id": "11", "userName": "kunjan" } ],
          len = json.length,
          obj;
      
      while(len--) {
        obj = json[len];
        if (obj.id == 10) {
            obj.userName = 'foobar';
        }
      }
      
      console.log(json); // outputs [{id:"10", userName:"foobar"}, {id:"11", userName:"kunjan"}]
      

      【讨论】:

        猜你喜欢
        • 2017-05-24
        • 2014-05-28
        • 1970-01-01
        • 1970-01-01
        • 2016-02-11
        • 1970-01-01
        • 2013-09-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多