我认为下面将对象添加或插入到对象数组中在逻辑上是合理的,但我得到的结果很奇怪。有人可以告诉我我在这里做错了什么吗?为什么当我尝试将对象插入索引为 0 的对象数组时,下面的代码返回空数组;为什么当我尝试在对象数组末尾添加对象时,下面的代码返回 4?
let objArr = [{
id: 1,
company: "Rapid Precision Mfg.",
title: "Quality Engineer",
firstName: "Dongyob",
lastName: "Lee",
officePh: "",
ext: "",
cell: "669-294-0910",
email: "dyl4810@gmail.com"
},
{
id: 2,
company: "Facebook",
title: "Frontend Developer",
firstName: "Edward",
lastName: "Simmons",
officePh: "408-516-4662",
ext: "003",
cell: "669-252-4251",
email: "edwardsimmons@gmail.com"
}
]
let nobj = {
id: 1,
company: "Rapid Precision Mfg.",
title: "Quality Engineer",
firstName: "Dongyob",
lastName: "Lee",
officePh: "",
ext: "",
cell: "669-294-0910",
email: "dyl4810@gmail.com"
}
console.log(objArr.splice(0, 0, nobj)) //Outcome: []
console.log(objArr.push(nobj)) //Outcome: 4
最佳答案
splice
返回数组中删除的元素。如果您没有删除 splice
调用中的任何元素,则返回的数组将为空。
const arr = [0, 1, 2, 3];
// from index 0, don't remove any elements, and insert element 'foo':
console.log(arr.splice(0, 0, 'foo'));
push
返回数组的新长度。输出为 4,因为数组以 2 个项目开始,您拼接
其中一个项目(使长度为 3),然后插入
另一个项目,使长度为 4 .
您当前的代码
console.log(objArr.splice(0, 0, nobj))
console.log(objArr.push(nobj))
正在将nobj
插入到数组中的最后一个位置和插入到数组中的第一个位置 - 如果您想查看之后的数组是什么,请记录数组:
console.log(objArr);
请注意,您可以使用 unshift
代替 splice
索引 0 处的元素:
const arr = [0, 1, 2, 3];
arr.unshift('foo');
console.log(arr);
关于javascript - 如何向对象数组中插入/添加对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55274303/