[英]JavaScript: get all possible values of a field in a two-dimensional array
从 API 我得到这样一个 json:
{
"purposes": [
{
"id": 1,
"code": "for-calls"
},
{
"id": 2,
"code": "task-management"
},
{
"id": 3,
"code": "messenger"
}
],
"availabilities": [
{
"id": 1,
"code": "free"
},
{
"id": 2,
"code": "free-basic-plan"
},
{
"id": 3,
"code": "trial-version"
}
],
"ecosystems": [
{
"id": 1,
"code": "browse-widget"
},
{
"id": 2,
"code": "web-app"
},
{
"id": 3,
"code": "installation-on-your-server"
}
]
}
如何遍历此 json 以获取包含每个元素的字段值“代码”的新数组。 因此,数组的每个元素中都应该有/catalog/filter/value_of_code
。
const obj = {
"purposes": [
{
"id": 1,
"code": "for-calls"
},
{
"id": 2,
"code": "task-management"
},
{
"id": 3,
"code": "messenger"
}
],
"availabilities": [
{
"id": 1,
"code": "free"
},
{
"id": 2,
"code": "free-basic-plan"
},
{
"id": 3,
"code": "trial-version"
}
],
"ecosystems": [
{
"id": 1,
"code": "browse-widget"
},
{
"id": 2,
"code": "web-app"
},
{
"id": 3,
"code": "installation-on-your-server"
}
]
}
const arr = Object.values(obj).reduce((acc, e) => [...acc, ...e.map(o => `/catalog/filter/${o.code}`)] ,[]);
console.log( arr );
假设您在 serverResp object 中收到此 JSON object。 现在让我们检查 object 中是否存在任何目录。
if(Object.keys(serverResp).length)
接下来我们将遍历目录
Object.keys(serverResp).forEach((cat) => )
每只猫代表一个目录。 接下来,我们将针对 forloop 中的每个键获取数组
const catItems = serverResp[cat];
catItems 将包含特定目录的所有项目。 现在让我们遍历每个 catItems 以获得“代码”值
catItems.forEach(item => console.log(item.code));
最后一段代码如下所示 -
const outputArray = [];
if(Object.keys(serverResp).length) {
Object.keys(serverResp).forEach((cat)=> {
const catItems = serverResp[cat];
catItems.forEach(item =>
outputArray.push(`/catalog/filter${item.code}`));
});
}
console.log(outputArray);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.