繁体   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