Mic*_*eal 5 javascript ecmascript-6
我试图避免与过滤器和映射链接,但为什么我的reduce 返回未定义?
const data = [{
value: "moto",
passed: true
},{
value: "boat",
passed: false
}, {
value: "car",
passed: true
}]
// expected ['moto', 'car']
// using filter and map
data.filter(obj => obj.passed).map(obj => obj.value)
Run Code Online (Sandbox Code Playgroud)
怎么了?
data.reduce((accum, obj) => obj.checked && [...accum, obj.value], [])
(accum, obj) => obj.checked && [...accum, obj.value]
Run Code Online (Sandbox Code Playgroud)
如果未检查对象,则不返回过滤列表。
(accum, obj) => {
if (obj.checked) accum.push(obj.value)
return accum;
}
Run Code Online (Sandbox Code Playgroud)
因为减速器功能会做到这一点。
或者将其保留为一行行,而不保持可读性:
(accum, obj) => obj.checked ? [...accum, obj.value] : accum;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5297 次 |
| 最近记录: |