如何更新密钥在JSON对象中的值?

时间:2017-11-15 09:39:36

标签: javascript json underscore.js

我正在使用 _underscore 。我想重命名特定键的值。



var users = [{
    "_id": { "$oid":"3426" },
    "name":"peeter"
}, {
    "_id": { "$oid":"5a027" },
    "name":"ken"
}, {
    "_id": { "$oid":"5999" },
    "name":"karmal"
}];
 
var index = _.find(users, function(o) { return o._id.$oid == '5999'; });
console.log(index);

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>
&#13;
&#13;
&#13;

console.log(index)的上面输出中,我想编辑key(name)的值,意思是添加karmal-Copy。

所需的输出

{
    "_id": {
        "$oid": "5999"
    },
    "name": "karmal-Copy"
}

我只想添加-Copy和键(名称)值。

4 个答案:

答案 0 :(得分:1)

您可以更新找到的对象。

&#13;
&#13;
var users = [{ _id: { $oid: "3426" }, name: "peeter" }, { _id: { $oid: "5a027" }, name:"ken" }, { _id: { $oid: "5999" }, name: "karmal" }],
    item = _.find(users, function(o) { return o._id.$oid == '5999'; });

if (item) {               // check if item exists
    item.name += '-Copy'; // update property
}
console.log(users);
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

具有高阶函数的强大功能

var users = [
    {"_id":{"$oid":"3426"},
    "name":"peeter"
    },
    {"_id":{"$oid":"5a027"},
    "name":"ken"
    },
    {"_id":{"$oid":"5999"},
    "name":"karmal"
    }
  ];

var getSpecific$oid=function(oid){ 
    return function(obj) { return obj["_id"]["$oid"]===oid; };
  }

var addExtensionInName=function(extension){ 
    return function(obj){ 
        var rObj = {};
        rObj["_id"]=obj["_id"]
        rObj["name"]=obj["name"] +"-"+extension;
        return rObj;
      };
  }

var index=users.filter(getSpecific$oid("5999")).map(addExtensionInName("copy"))

答案 2 :(得分:-1)

试试这个:

for(var i = 0; i < users.length; i++) {
    if(users[i]._id.$oid == 5999) {
        users[i].name += "-Copy"; 
    }
}

答案 3 :(得分:-1)

你走了:

&#13;
&#13;
var users = [
  {"_id":{"$oid":"3426"},
  "name":"peeter"
  },
  {"_id":{"$oid":"5a027"},
  "name":"ken"
  },
  {"_id":{"$oid":"5999"},
  "name":"karmal"
  }
];
 
var index = _.find(users, function(o) { 
    if(o._id.$oid == '5999'){
      o.name += '-Copy';
      return o._id.$oid == '5999'; 
    }
  });

console.log(index);
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>
&#13;
&#13;
&#13;