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

标签 javascript

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

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

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

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

但是 Jane 没有被删除。只将 Simon 添加到列表中。

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

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



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

最佳答案

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

关于javascript - 用数组键替换数组中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46730483/

相关文章:

javascript - getCurrentPosition 未调用

javascript - 如何使用javascript获取时间差?

javascript - 删除除使用 jQuery 单击的列表项之外的所有其他列表项

javascript - 如何在鼠标事件上上下滚动列表

c# - 使用 Ajax POST 将 Javascript 数组传递到 C# 代码隐藏

javascript - 是否有用于 html 的通用模板引擎可用于 php、python 和 java

javascript - 为什么使用填充图案时我的 SVG 图像模糊?

javascript - 使用 AJAX 请求从另一个域获取图像数据

javascript - 如何使用 Twitter Bootstrap 中的弹出框来显示图像?

javascript - 如何在 javascript 中使用 PluginResult 对象