如何访问数组中对象内部的子数组?以提取input的sub_categories为例
如何访问数组中对象的子数组并提取指定内容?
针对你给出的输入数组,要提取其中对象的sub_categories子数组,可以通过以下方式实现:
单对象场景(输入数组仅含一个对象)
输入数组是包含单个对象的数组,先通过索引[0]获取数组中的目标对象,再直接访问其sub_categories属性即可得到子数组:
const input = [{ "id": 3252, "title": "Payment", "sub_categories": [{ "id": 3252, "subtitle": "House", }], }]; // 提取目标子数组 const output = input[0].sub_categories; console.log(output); // 输出结果:[{ "id": 3252, "subtitle": "House" }]
多对象场景(输入数组含多个对象)
如果输入数组包含多个带sub_categories的对象,可根据需求选择不同提取方式:
- 合并所有子数组为一维数组:用
flatMap方法将每个对象的sub_categories展开合并 - 保留各对象对应的子数组(二维数组):用
map方法将每个对象的sub_categories作为新数组元素
示例代码:
const input = [ { "id": 3252, "title": "Payment", "sub_categories": [{ "id": 3252, "subtitle": "House" }] }, { "id": 3253, "title": "Shopping", "sub_categories": [{ "id": 3253, "subtitle": "Electronics" }] } ]; // 合并所有sub_categories为一维数组 const allSubCategories = input.flatMap(item => item.sub_categories); console.log(allSubCategories); // 输出:[{"id":3252,"subtitle":"House"},{"id":3253,"subtitle":"Electronics"}] // 得到包含所有sub_categories的二维数组 const subCategoriesArray = input.map(item => item.sub_categories); console.log(subCategoriesArray); // 输出:[[{"id":3252,"subtitle":"House"}],[{"id":3253,"subtitle":"Electronics"}]]
内容的提问来源于stack exchange,提问作者Derek Hough
相关产品推荐
相关产品推荐

