mat*_*eva 7 javascript arrays object node.js
我正在尝试迭代对象数组以创建一个更适合我未来计划的新对象。一切正常,直到我在地图中添加了一个 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"]]
}
})))
Run Code Online (Sandbox Code Playgroud)
Tho*_*ann 13
如果有人像我一样在使用 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 []
Run Code Online (Sandbox Code Playgroud)
请在下面找到更正后的代码
Object.fromEntries(TestArray.map((item) => {
if (!(parseInt(item["validTo"]) > item["Time"])) {
return [item["Time"], item["value"]]
}
}).filter(item => item))
Run Code Online (Sandbox Code Playgroud)
我发现您已经理解为什么您的代码不能与上面的注释一起使用。
归档时间: |
|
查看次数: |
10200 次 |
最近记录: |