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到一个新数组,想看看 有没有更好的方法
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...
两层遍历免不了吧
const result = good_list.reduce((pre, cur) => {
return pre.concat(cur.cart_goods.map(item=>item.rec_id))
}, [])
不然骚操作一点,就转成json字符串然后匹配出 "rec_id":xxx
了。
想要的结果: 刚刚问的那个搞错了 谢谢大家,我自己搞出来了已经,
如何把这个数据 转为
将js数组中对象的属性值相等的对象组合成一个新的数组元素。 可以使用reduce、map等函数 比如: 如果 groupId 为-1,则删除其groupId属性,并按顺序将该元素加入新的数组中即可 另外:arr数组中相同groupId的元素在数组中的位置总是相邻的。(groupId为-1的除外) 比如:
我有这样的数据响应 然后我想把颜色推到物品里面 预期:每个索引项有三(3)个变量 我尝试使用push和concat,但出现错误“无法读取未定义的属性“数据” 这是我的密码
下面的代码,我拿到数据库中的数据$data,并转为数组,数组遍历过程中拿到['href']中的值,并json_decode一下转为数组,遍历数组格式打开出来如(2)所示。 现在我想拿$arr中的['param'],我用$arr['param']和$arr[1]都拿不到值,为什么 ? (1) (2)
我有[{key1:value1,key2:value2},{key3:value3,key4:value4},...].我想将其转换为{value1:value2,value3:value4}