当前位置: 首页 > 知识库问答 >
问题:

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

皇甫波峻
2023-06-04
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到一个新数组,想看看 有没有更好的方法

共有2个答案

龚俊捷
2023-06-04
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...
齐成和
2023-06-04

两层遍历免不了吧

const result = good_list.reduce((pre, cur) => {
    return pre.concat(cur.cart_goods.map(item=>item.rec_id))
}, [])

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

 类似资料: