请问如何拿出这个数组对象的值 组成新的数组?

let good_list = [

{

cart_goods:[{rec_id:'123'},{rec_id:'456'}]

},

{

cart_goods:[{rec_id:'789'},{rec_id:'555'}]

}

]

想要的结果:

["123","456","789","555"]

其实我感觉我自己取的方法,有点乱,用了两层map遍历,然后又把item.rec_id push到一个新数组,想看看 有没有更好的方法


回答:

两层遍历免不了吧

const result = good_list.reduce((pre, cur) => {

return pre.concat(cur.cart_goods.map(item=>item.rec_id))

}, [])

不然骚操作一点,就转成json字符串然后匹配出 "rec_id":xxx 了。


回答:

good_list.flatMap(goods=>goods.cart_goods.map(good=>good.rec_id))

// ['123', '456', '789', '555']

Array.prototype.flatMap()
flatMap() 方法对数组中的每个元素应用给定的回调函数,然后将结果展开一级,返回一个新数组。它等价于在调用 map() 方法后再调用深度为 1 的 flat() 方法(arr.map(...args).flat()),但比分别调用这两个方法稍微更高效一些。
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refer...

以上是 请问如何拿出这个数组对象的值 组成新的数组? 的全部内容, 来源链接: utcz.com/p/934403.html

回到顶部