如何用对象数组中的特定索引替换元素-Javascript

时间:2018-08-24 00:00:47

标签: javascript

我有对象数组:

var arr=[
{name:"d", op: "GTE", field:"ddd"},
{name:"dss", op: "LTE", field:"d4dd"},
{name:"dss", op: "GE", field:"ddddd"}]

我设法获取了元素中每个数组的索引,但是我不确定如何用新值替换整个对象? 例如:在索引2,我希望对象在更新后看起来像这样:

var arr=[
    {name:"d", op: "GTE", field:"ddd"},
    {name:"dss", op: "LTE", field:"d4dd"},
    **{name:"lithe", op: "GE", field:"34545"}**
]

我该如何实现?

4 个答案:

答案 0 :(得分:4)

只需使用简单的数组访问并在索引处重新分配

result['Data']['Traffic']

答案 1 :(得分:4)

    = drag-sort-list [
      tagName="ul"
      childTagName="li"
      class="someClass"
    ]

答案 2 :(得分:2)

您可以分配新的元素值来替换数组中现有的元素值。 喜欢:

 var newElement = {name:"lithe", op: "GE", field:"34545"};

 arr[2] = newElement;

请参阅演示

var arr = [{
    name: "d",
    op: "GTE",
    field: "ddd"
  },
  {
    name: "dss",
    op: "LTE",
    field: "d4dd"
  },
  {
    name: "dss",
    op: "GE",
    field: "ddddd"
  }
]
console.log("BEFORE");
console.log(arr);

var newElement = {name:"lithe", op: "GE", field:"34545"};

arr[2] = newElement;
/** 
if you need to loop thru the array and find our element, you can do this 

for(var idx=0; idx < arr.length; idx++){
  // any conditional here
  if( idx === 2 ){
     arr[idx] = newElement;
  }
}

*/
console.log("AFTER");
console.log(arr);

答案 3 :(得分:1)

正如其他答案所述,您可以轻松地直接访问和重新分配arr[2]={name:"lithe", op: "GE", field:"34545"}

但是,如果您想提高效率(例如,仅需要更新arr[2]对象中的某些字段(视情况而定)),最好将新对象与arr[2]已经存在的一个。为此,您可以Object.assign(arr[2], {name:"lithe", field:"34545"})(ES5)或arr[2]={...arr[2],...{name:"lithe", field:"34545"}}(ES6)。