我有对象数组:
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"}**
]
我该如何实现?
答案 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)。