未捕获的类型错误:迭代器值未定义不是条目对象”将过滤器添加到映射
2022-04-20
11981
我试图遍历一个对象数组来创建一个更适合我未来计划的新对象。一切都很顺利,直到我在地图中放了一个 if 语句,但我不知道为什么?
const TestArray = [{
value: 0.2,
Time: '1980',
Region: 'Oklahoma',
RegionNumber: '1620',
validTo: 2017
},
{
value: 0.3,
Time: '1983',
Region: 'Oklahoma',
RegionNumber: '1620',
validTo: 2017
},
{
value: 0.2,
Time: '1986',
Region: 'Oklahoma',
RegionNumber: '1620',
validTo: 2017
},
{
value: 0.2,
Time: '1988',
Region: 'Oklahoma',
RegionNumber: '1620',
validTo: 2017
},
{
value: 0.2,
Time: '2018',
Region: 'Oklahoma',
RegionNumber: '1620',
validTo: 2017
}
]
console.log("This works fine:")
console.log(Object.fromEntries(TestArray.map((item) => [item["Time"], item["value"]])))
console.log("but when adding filter it crashes:")
console.log(Object.fromEntries(TestArray.map((item) => {
if (!(parseInt(item["validTo"]) > item["Time"])) {
[item["Time"], item["value"]]
}
})))
2个回答
如果有人在使用 JavaScript
Map
对象时遇到此问题,就像我一样:
const map = new Map(["a", 1], ["b", 2]); // Iterator value is not an entry object
const map = new Map([["a", 1], ["b", 2]]); // Correct, just forgot the []
Thomas Zimmermann
2022-11-16
请在下面找到更正后的代码
Object.fromEntries(TestArray.map((item) => {
if (!(parseInt(item["validTo"]) > item["Time"])) {
return [item["Time"], item["value"]]
}
}).filter(item => item))
我发现您已经根据上面的注释了解了为什么您的代码无法正常工作。
JithinAji
2022-11-09