[英]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.