簡體   English   中英

如何用對象數組中的特定索引替換元素-Javascript

[英]how to replace an element with a specific index in an array of objects-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"}**
]

我怎樣才能做到這一點?

只需使用簡單的數組訪問並在索引處重新分配

arr[indexValue] = myNewObject
arr[2] = {name:"lithe", op: "GE", field:"34545"}

您可以分配新的元素值來替換數組中現有的元素值。 喜歡:

 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); 

如其他答案所述,您可以輕松地直接訪問和重新分配,即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)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM