无法迭代 ES6 Map 对象
Cannot iterate ES6 Map object
我正在做一个简单的 React 项目。
我有这个 Map 对象 books
,其中 book.id 作为键,book 对象作为值。所以我可以创建一个地图对象,但我不能使用 for... of
或 forEach
迭代地图。
这是代码的一部分
const books = this.props.readingBooks;
let KEYS = [];
let VALUES = [];
for (const book of books) {
let [key, value] = book;
KEYS.push(key);
VALUES.push(value);
}
当我使用代码时,总是出现这个错误:
我会把它写在一个答案中,因为我需要给你看一些代码,尽管我们还没有完全弄清楚你的代码有什么问题。
首先,您显示的错误意味着某些代码正在尝试迭代不可迭代的内容。如果您关于错误来自 for/of
循环的断言是正确的,那么它告诉您 books
不是可迭代对象,因此不是 Map 对象。
你可以通过这个简单的例子看到,如果 books
是一个合法的 Map
对象,那么你的代码可以正常工作。您可以在此代码段中 运行 它并查看如果 books
是一个适当的 Map
对象它是否有效。
const books = new Map([["key1", "val1"], ["key2", "val2"]]);
let KEYS = [];
let VALUES = [];
for (const book of books) {
let [key, value] = book;
KEYS.push(key);
VALUES.push(value);
}
console.log(KEYS);
console.log(VALUES);
因此,要么 books
不是您认为的正确 Map
对象,要么您的真实代码中发生了其他您未在此处向我们展示的事情。
我正在做一个简单的 React 项目。
我有这个 Map 对象 books
,其中 book.id 作为键,book 对象作为值。所以我可以创建一个地图对象,但我不能使用 for... of
或 forEach
迭代地图。
这是代码的一部分
const books = this.props.readingBooks;
let KEYS = [];
let VALUES = [];
for (const book of books) {
let [key, value] = book;
KEYS.push(key);
VALUES.push(value);
}
当我使用代码时,总是出现这个错误:
我会把它写在一个答案中,因为我需要给你看一些代码,尽管我们还没有完全弄清楚你的代码有什么问题。
首先,您显示的错误意味着某些代码正在尝试迭代不可迭代的内容。如果您关于错误来自 for/of
循环的断言是正确的,那么它告诉您 books
不是可迭代对象,因此不是 Map 对象。
你可以通过这个简单的例子看到,如果 books
是一个合法的 Map
对象,那么你的代码可以正常工作。您可以在此代码段中 运行 它并查看如果 books
是一个适当的 Map
对象它是否有效。
const books = new Map([["key1", "val1"], ["key2", "val2"]]);
let KEYS = [];
let VALUES = [];
for (const book of books) {
let [key, value] = book;
KEYS.push(key);
VALUES.push(value);
}
console.log(KEYS);
console.log(VALUES);
因此,要么 books
不是您认为的正确 Map
对象,要么您的真实代码中发生了其他您未在此处向我们展示的事情。