【发布时间】:2020-11-17 00:24:51
【问题描述】:
我正在尝试使用.fromEntries() 修改对象的值。
如下图所示,我实际上是在返回一个修改后的小时数组,但是在函数结束后,它返回的是完整的数组,而不是更新后的数组。
提前感谢您的任何想法!
let filteredDates = Object.fromEntries(Object.entries(slots).filter(([slot, value]) => {
let result = datesArray.some(filterdates => {
return filterdates.some(filter => slot === filter)
})
let currentDay = slot === day ? value.filter(time => time >= currentHour) : null
result = currentDay ? currentDay : result ? value : result
console.log("result",result)
return result
}))
console.log("filteredDates",filteredDates)
【问题讨论】:
-
filter()不返回回调函数的结果。只要回调函数返回一个真值,它就会返回原始数组的元素。 -
如果您想通过转换原始数组中的值来返回一个新数组,请使用
map()。 -
感谢您的评论,问题是我不能返回 null、undefined 或 false,否则我会收到 TypeError: Iterator value false is not an entry object
-
你应该返回一个
[newkey, newvalue]形式的数组 -
如果你想有条件返回使用
reduce(),或者使用.filter(testfunction).map(conversionfunction)
标签: javascript arrays object ecmascript-2019