js的数组操作一直是我比较头疼的问题,以往处理数组就是各种foreach嵌套,filter,map。。。写完之后总是感觉会有优化的地方但是自己能力有限实在是不知道该怎么优化,如下代码:
let arr = [{
id: 10,
name: 'IOS',
status: false
}, {
id: 11,
name: 'Android',
status: false
},
{
id: 12,
name: '移动端',
status: false
},
{
id: 13,
name: '微信小程序',
status: false
},
{
id: 20,
name: 'PC',
status: true
}]
// 需求是拿到status为true的id,并且以逗号隔开拼成字符串,我的写法如下
let arr2 = arr.filter(item => item.status)
let arr3 = arr2.map(item => item.id)
let str = arr3.join(",")
请求各位大佬指点。。。。
语义上更建议用你这种写法,简单直观。其实你这个写法可以简化成
不过这种写法循环了两遍,追求效率的话可以尝试改成下面写法只循环一遍就实现,但是代码不好理解