Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组的嵌套数组中的Flattern对象_Javascript - Fatal编程技术网

Javascript 数组的嵌套数组中的Flattern对象

Javascript 数组的嵌套数组中的Flattern对象,javascript,Javascript,我有一个数组,其中包含对象,希望获取某个键的值并将其作为一个大数组返回,尝试了嵌套映射,但它返回多个数组,而不是单个数组 const项=[ { id:1, 分项:[ { 身份证号码:1 }, { 身份证号码:2 }, { 身份证号码:3 } ] }, { id:2, 分项:[ { 身份证号码:4 }, { 身份证号码:5 }, { 身份证号码:6 } ] } ] const subItemIDs=items.map((item)=> item.sub_items.map((subItem)=>

我有一个数组,其中包含对象,希望获取某个键的值并将其作为一个大数组返回,尝试了嵌套映射,但它返回多个数组,而不是单个数组

const项=[
{
id:1,
分项:[
{
身份证号码:1
},
{
身份证号码:2
},
{
身份证号码:3
}
]
},
{
id:2,
分项:[
{
身份证号码:4
},
{
身份证号码:5
},
{
身份证号码:6
}
]
}
]
const subItemIDs=items.map((item)=>
item.sub_items.map((subItem)=>subItem.id)
)
console.log(子项ID)您可以从嵌套数组中获取平面数组

const
items=[{id:1,子项:[{id:1},{id:2},{id:3}]},{id:2,子项:[{id:4},{id:5},{id:6}]},
subItemIDs=items.flatMap(({sub_items})=>sub_items.map(({id})=>id));
console.log(子项ID)您可以从嵌套数组中获取平面数组

const
items=[{id:1,子项:[{id:1},{id:2},{id:3}]},{id:2,子项:[{id:4},{id:5},{id:6}]},
subItemIDs=items.flatMap(({sub_items})=>sub_items.map(({id})=>id));

console.log(子项ID)
您可以使用
arrays.flat()
。一旦问题中提到了输出,我可以提供更具体的代码

const arr1 = [0, 1, 2, [3, 4]];

console.log(arr1.flat());
// expected output: [0, 1, 2, 3, 4]

const arr2 = [0, 1, 2, [[[3, 4]]]];

console.log(arr2.flat(2));
// expected output: [0, 1, 2, [3, 4]]

您可以使用
arrays.flat()
。一旦问题中提到了输出,我可以提供更具体的代码

const arr1 = [0, 1, 2, [3, 4]];

console.log(arr1.flat());
// expected output: [0, 1, 2, 3, 4]

const arr2 = [0, 1, 2, [[[3, 4]]]];

console.log(arr2.flat(2));
// expected output: [0, 1, 2, [3, 4]]
通过以下方式实现了这一目标:

const项=[
{
id:1,
分项:[
{
身份证号码:1
},
{
身份证号码:2
},
{
身份证号码:3
}
]
},
{
id:2,
分项:[
{
身份证号码:4
},
{
身份证号码:5
},
{
身份证号码:6
}
]
}
]
const subItemIDs=[].concat(…items.map((item)=>
item.sub_items.map((subItem)=>subItem.id)
))
console.log(子项ID)通过以下方式实现:

const项=[
{
id:1,
分项:[
{
身份证号码:1
},
{
身份证号码:2
},
{
身份证号码:3
}
]
},
{
id:2,
分项:[
{
身份证号码:4
},
{
身份证号码:5
},
{
身份证号码:6
}
]
}
]
const subItemIDs=[].concat(…items.map((item)=>
item.sub_items.map((subItem)=>subItem.id)
))

console.log(子项ID)有时,显而易见的是最简单的: 给定一个如下所示的数据结构

const项=[
{id:1,子项:[{id:1},{id:2},{id:3},]},
{id:2,子项:[{id:4},{id:5},{id:6},]},
];
像这样的简单函数

函数提取项目标识(项目){
常量ID=[];
用于(项目的常数项){
用于(子项的常量{id}){
id.push(id);
}
}
返回ID;
}
我们应该做到这一点。如果您想从任何深度的树中收集ID,也很容易:

函数提取项目标识(项目){
常量ID=[];
const pending=项目;
while(pending.length>0){
const item=pending.pop();
id.push(item.id);
挂起。推送(…(item.sub_items | |[]));
}
返回ID;
}
收集离散项目ID集不再困难: 如果您想从任何深度的树中收集ID,也很容易:

函数提取项目标识(项目){
常量ID=新集合();
常量挂起=[…项];
while(pending.length>0){
const item=pending.pop();
添加(item.id);
挂起。推送(…(item.sub_items | |[]));
}
返回数组.from(id);
}

有时候,显而易见的是最简单的: 给定一个如下所示的数据结构

const项=[
{id:1,子项:[{id:1},{id:2},{id:3},]},
{id:2,子项:[{id:4},{id:5},{id:6},]},
];
像这样的简单函数

函数提取项目标识(项目){
常量ID=[];
用于(项目的常数项){
用于(子项的常量{id}){
id.push(id);
}
}
返回ID;
}
我们应该做到这一点。如果您想从任何深度的树中收集ID,也很容易:

函数提取项目标识(项目){
常量ID=[];
const pending=项目;
while(pending.length>0){
const item=pending.pop();
id.push(item.id);
挂起。推送(…(item.sub_items | |[]));
}
返回ID;
}
收集离散项目ID集不再困难: 如果您想从任何深度的树中收集ID,也很容易:

函数提取项目标识(项目){
常量ID=新集合();
常量挂起=[…项];
while(pending.length>0){
const item=pending.pop();
添加(item.id);
挂起。推送(…(item.sub_items | |[]));
}
返回数组.from(id);
}

与大多数JavaScript一样,您有几个选项。有些人比其他人更有效率,其他人有一定的风格纯洁性,其他人可能更好地表达你的想法。以下是一些:

平面阵列 使用array flat,您可以使用原始代码,让JS引擎将数组展平为一维数组。只需将
.flat()
附加到地图的末尾

const项=[
{id:1,子项:[{id:1},{id:2},{id:3},]},
{id:2,子项:[{id:4},{id:5},{id:6},]},
];
const subItemIds=items.map((item)=>
item.sub_items.map((subItem)=>subItem.id)
).flat()

console.log(子项ID)与大多数JavaScript一样,您有几个选项。有些人比其他人更有效率,其他人有一定的风格纯洁性,其他人可能更好地表达你的想法。以下是一些:

平面阵列 使用array flat,您可以获取原始代码,并让JS引擎将数组展平为一维