遇到返回的数据中,属性名是id,属性值是个id数组集合,现在要把有成员id都提取到一个数组集合中。
const deps = {
'淘宝':[13,23,3],
'京东':[5,85,12],
'天猫':[8,14,79],
'苏宁':[5,64,105],
}
es5是这么写的
let member = [];
for (let item in deps){
const value = deps[item];
if(Array.isArray(value)){
member = [...member,...value]
}
}
member = [...new Set(member)]
能解决,但是问题也很明显,我们需要取对象的值,可以直接使用object.values方法,并且现在的数组的深度是二维,但如果涉及三维,四维,去循环嵌套不优雅了,这个时候可以借助数组的flat方法.
const deps = {
'淘宝':[13,23,3],
'京东':[5,85,12],
'天猫':[8,14,79],
'苏宁':[5,64,105],
}
let member = Object.values(deps).flat(Infinity);
flat方法中的参数: ,默认值为 1
infinity : 可以直接解决多维嵌套,无需知道层数
返回值: 一个包含将数组与子数组中所有元素的新数组