【问题标题】:I want to update a value to a json object where key already exists in Javascript我想将一个值更新为 Javascript 中已存在键的 json 对象
【发布时间】:2018-06-25 09:58:03
【问题描述】:

例如,我有以下对象。

var arr = [
     {id:1,name:"arjun"},
     {id:2,name:"kishore"}
]

当我将一个对象推送到上面的数组时,像这样

arr.push({id:1,name:"akash"})

它应该更新对象。

【问题讨论】:

标签: javascript arrays json


【解决方案1】:

var arr = [{id:1,name:"arjun"},{id:2,name:"kishore"}];
arr.push = function(data){
    for(let i=0;i<this.length;i++){
      if(data.id == this[i].id){
          this[i].name = data.name;
          return this.length;
      }
    }
    this.push(data);
  return this.length;
}
arr.push({id:1,name:"akash"});
console.log(arr);

【讨论】:

  • 感谢 Onk_r 和 Akhil .. 得到了我的预期
【解决方案2】:

试试这个来更新数组的对象属性

var arr = [{id:1,name:"arjun"},{id:2,name:"kishore"}];

var obj = {id:1,name:"akash"};

arr.map(item => {
    (item.id == obj.id) ? (item.name = obj.name) : ''; 
});


console.log("Modified Array", arr);

【讨论】:

  • Rohit,我尝试了您的解决方案,但没有按预期工作。好的,让我稍微详细说明一下这个问题。我有一个超过 30 页的表格,每页有 10 行,每行有一个包含下拉列表的列。当我更改每一行的下拉值时,我应该能够提交多个请求,ON onchange 事件我正在传递数据,并且我正在将其转换为 json。并试图推动它。简而言之,您的代码仅在数组中有两个对象时才有效,仅此而已。
  • @ArjunSarthi 我没听懂你
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-05
  • 2022-11-23
  • 2018-07-13
  • 2020-05-06
  • 1970-01-01
  • 2020-03-11
  • 1970-01-01
相关资源
最近更新 更多