javascript - 如何在 Javascript 中对数组对象使用 forEach 方法或任何数组方法?

标签 javascript arrays node.js object

我正在学习在数组上使用现代数组方法,但是有没有办法可以在数组对象上使用这些方法?如果不是,将整个对象存储到数组中是否更好?

var course = {
  name: "My Javascript Tutorial",
  awesome: true,
  teachers: ["Brandon", "Shane", "Mike"],
  students: [
    {
      name: "Cliff",
      computer: {
        OS: "macOS",
        type: "iMac"
      }
    },
    {
      name: "Arthur",
      computer: {
        OS: "macOS",
        type: "Macbook Pro"
      }
    },
    {
      name: "Donald",
      computer: {
        OS: "macOS",
        type: "Windows PC"
      }
    }
  ]
};


course.forEach(function(item){
    console.log(course.students[item].name + 'uses a ' + course.students[item].computer.type);
})

这是我遇到的错误。

类型错误:无法读取未定义的属性“学生”

最佳答案

您要迭代的数组是 course.students,因此引用 course.students 并对其调用 forEach

forEach 的第一个参数将是要迭代的项目(数组的一个元素)。由于您的元素是对象,因此请引用它们的 namecomputer 属性以正确记录它们:

var course = {
  name: "My Javascript Tutorial",
  awesome: true,
  teachers: ["Brandon", "Shane", "Mike"],
  students: [
    {
      name: "Cliff",
      computer: {
        OS: "macOS",
        type: "iMac"
      }
    },
    {
      name: "Arthur",
      computer: {
        OS: "macOS",
        type: "Macbook Pro"
      }
    },
    {
      name: "Donald",
      computer: {
        OS: "macOS",
        type: "Windows PC"
      }
    }
  ]
};


course.students.forEach(function(item){
    console.log(item.name + 'uses a ' + item.computer.type);
})

关于javascript - 如何在 Javascript 中对数组对象使用 forEach 方法或任何数组方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57749794/

相关文章:

javascript - 删除索引的数组逻辑操作

javascript - continue 不在循环内,firebox 给出编译器错误,但 chrome 可以吗?

javascript - 异步函数try catch block 是否可以包装称为异步函数,这也可能引发错误?

javascript - Addon SDK - context-menu 和 page-mod workers

javascript - 根据CSS中 parent 的高度使 child 居中

javascript - 访问对象 ID 的更短方法?

javascript - 如何解构存储为状态值的对象

带有结构的 C 数组 - 不能更改变量

node.js - Sequelize : calculate values before creating AND updating

node.js - 如何让更新的 node.js 版本在 Beaglebone Black ARMv7 板上运行?