为什么.foreach()工作,但不是for循环?



目前正在学习Node.JS,正在做一个基本的命令提示提示应用程序。在使用listNotes函数(用于显示所有笔记的标题)时,我最初是这样开始的:

const notes = loadNotes() 
for (let note in notes) {
console.log(note.title)
}

这给我留下了一个未定义。

然而,

const notes = loadNotes()
notes.forEach((note) => {
console.log(note.title)
})

留给我实际的笔记标题。

在这种情况下,forEach和for循环的区别是什么?澄清一下,我的所有loadNotes()方法正在做的是读取JSON文件并将其解析为对象。如果file不存在,它创建一个空数组

注释可定义为:

Note[{
title: "string",
body: "string"
}]

提前感谢!

你应该使用"of"而不是"in">

,

const notes = loadNotes() 
for (let note of notes) {
console.log(note.title)
}

就像Phil指出的,for..in将迭代索引。

如果notes是一个数组:

const notes = loadNotes() 
for (let index in notes) {
console.log(index)
}
// outputs are: 0,1,2, etc...
// You are doing something like: 1.title, 2.title
// 'title' is not a field of these numeric values, 
// so you are getting 'undefined' values

相关内容

  • 没有找到相关文章

最新更新