如何将嵌套对象数组转换为二维数组,仅提取value键值并剔除id字段
嵌套对象数组转二维数组实现方案
需求说明
将接口返回的两层嵌套对象数组,仅提取所有对象的value键对应的值,剔除全部id字段内容,最终生成二维数组。
原始接口返回数据
[ { "id": "f2e77e46-814b-4d73-83db-cb57c341d28f", "value": [ { "id": "ba50429d-564a-404c-ba48-e70b9a3971d9", "value": 1 }, { "id": "d9b49f4a-f184-4dc5-9469-1ad52e23d2dc", "value": 1 }, { "id": "e1cf76aa-6516-4ed9-bdf7-c4d0d8f07102", "value": 1 } ] }, { "id": "baacce8d-192c-4353-bef9-9140c611f1d7", "value": [ { "id": "b3bf9a68-4abf-43b2-9e3c-2cad0536a7f1", "value": 1 }, { "id": "7dbe6bad-1a81-45e1-b683-95a185b53f35", "value": 1 }, { "id": "c5282246-cc18-4ffa-bb57-459df6ae28b9", "value": 1 } ] }, { "id": "1e622287-915d-450b-8ed0-53b4a434030f", "value": [ { "id": "2c69caf6-9277-4fcd-9d12-0d0823eb2805", "value": 1 }, { "id": "9a665798-1318-4662-9a17-abbc6ee77df7", "value": 1 }, { "id": "786157e5-45e3-4886-8307-f613ab8fcad0", "value": 1 } ] } ]
期望输出结果
[ [1,1,1], [1,1,1], [1,1,1] ]
实现代码(JavaScript)
通过两层map遍历即可完成转换,逻辑简单清晰:
// rawData 为接口返回的原始数组 const convertedResult = rawData.map(outerItem => { return outerItem.value.map(innerItem => innerItem.value) }) // 简写版本 const convertedResult = rawData.map(o => o.value.map(i => i.value))
逻辑说明
- 第一层
map遍历外层数组的每个元素,取出每个元素的value属性(即内层对象数组) - 第二层
map遍历内层对象数组,取出每个内层对象的value数值,最终拼接为目标二维数组
内容的提问来源于stack exchange,提问作者M Muqiit Faturrahman
相关产品推荐
相关产品推荐

