javascript - 如何向对象数组中插入/添加对象?

标签 javascript arrays object

我认为下面将对象添加或插入到对象数组中在逻辑上是合理的,但我得到的结果很奇怪。有人可以告诉我我在这里做错了什么吗?为什么当我尝试将对象插入索引为 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/

相关文章:

javascript - 从嵌入的 HTML 访问组件 Controller

java - 将数组元素相加并将它们存储到另一个数组中? ( java )

对象之间的 JavaScript 传递值

javascript - 重试时客户端连接未正确关闭

javascript - 可点击 div 内的可点击图像调用两个 onclick 处理程序

javascript - 将图像动态插入 JavaScript 幻灯片 Asp.net C#

c# - 用 C# 中第二个数组的值替换数组中的给定值

ios - Swift:比较/拆分两个日期数组[Date]后,如何创建日期数组[[Date]]的数组

python - 将 super 与类方法一起使用

php - 用数组附加 protected 对象