【发布时间】:2019-02-10 13:00:08
【问题描述】:
我正在尝试将此函数转换为使用 reduce。我已经完成了一半。当所选值为true 时,我想知道该元素的索引。
let options = [
{label: 'foo1', selected: false},
{label: 'foo2', selected: true},
{label: 'foo2', selected: false},
{label: 'foo2', selected: false},
{label: 'foo2', selected: false},
];
const obj = options
.map((option, index) => (option.selected ? index : -1))
.filter((val) => val !== -1)[0];
结果:1
我的尝试是这样的:
const obj = options.reduce((acc, currentValue, index) => {
const i = currentValue["selected"] ? index : -1;
return acc.concat(i)
}, []); // [-1,1,-1,-1,-1]
如何更改整个东西以使用 reduce?
【问题讨论】:
-
使用reduce是分配的家庭作业吗?因为我觉得一个简单的循环在这里很好。或者你可以使用 options.findIndex(x=>x.selected)
标签: javascript reduce