用数组键替换数组中的对象

时间:2017-10-13 12:56:49

标签: javascript

我不确定这是否是我的应用程序中的错误,但我有一个这样的数组:

var arr = [{name: 'John'}, {name: 'Jane'}, {name: 'Smith'}, {name: 'George'}];

我正在尝试将{name: 'Jane'}替换为{name: 'Simon'},所以我正在做

arr.splice(1, 0, {name:'Simon'})

Jane尚未删除。 Just Simon被添加到列表中。

我认为拼接的第一个arg是放置新数组的位置,0是替换现有数组



var arr = [{
  name: 'John'
}, {
  name: 'Jane'
}, {
  name: 'Smith'
}, {
  name: 'George'
}];



arr.splice(1, 0, {
  name: 'Simon'
})
console.log(arr)




3 个答案:

答案 0 :(得分:4)

Array#splice是错误的工具,因为它会删除和/或插入元素。

您可以直接使用索引并替换该项目。

var array = [{ name: 'John' }, { name: 'Jane' }, { name: 'Smith' }, { name: 'George' }];

array[1] = { name: 'Simon' };

console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }

编辑,差不多,您可以删除实际项目并添加一个新项目,但在这种情况下这是不可取的,因为您需要一些不必要的阵列,如删除和插入项目。

arr.splice(1, 1, { name:'Simon' })
//            ^                    take one element out at index 1 and insert a new object

var array = [{ name: 'John' }, { name: 'Jane' }, { name: 'Smith' }, { name: 'George' }];

array.splice(1, 1, { name: 'Simon' });

console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 1 :(得分:1)

或者,如果您只想更改名称:

arr[1].name = "Simon";

答案 2 :(得分:1)

您可以使用sqaure括号直接访问元素。

arr[0]将访问数组中的第一个元素,因此您需要arr[1]

您可以简单地说arr[1] = {name:'Simon'};来执行此操作

splice()方法在数组中添加/删除项目,并返回已删除的项目。