【发布时间】:2021-12-10 09:58:07
【问题描述】:
我有一个类似以下数据的元素列表
[
{
"title": "First",
"catalogCategories": [ "sport", "economy" ]
},
{
"title": "Second",
"catalogCategories": [ "politics", "tourism" ]
},
{
"title": "Third",
"catalogCategories": [ "sport", "universe" ]
},
{
"title": "Fourth",
"catalogCategories": [ "economy", "politics" ]
}
]
如果catalogCategories 数组存在,我将检查列表的每个元素,如果存在,我将任何元素的类别推入catalogData 数组一次,因为碰巧任何元素的类别都可以是同样,我在catalogData数组中过滤catalogCategories中元素的所有类别
这是下面的代码
let categoryData = [];
let isCategory = false
for (let product of list) {
if (product.catalogCategories[0].length > 0) {
isCategory = true
let isFound = false
for (let i = 0; i < categoryData.length; i++) {
if (categoryData[i].value === product.catalogCategories[0] ||
categoryData[i].value === product.catalogCategories[1] ) {
isFound = true;
}
}
if (!isFound) {
categoryData.push({"name": "catalogCategories", "label": product.catalogCategories[0], "selected": false, "value": product.catalogCategories[0]})
}
}
我的问题来了
if (!isFound) {
categoryData.push({"name": "catalogCategories", "label": product.catalogCategories[0], "selected": false, "value": product.catalogCategories[0]})
}
正如您所见,在所有这些检查之后,我总是只推送catalogCategories 的第一个元素,我如何动态地写下我可以推送第一个和/或第二个?
"value": product.catalogCategories[0]
"label": product.catalogCategories[0]
【问题讨论】:
标签: javascript arrays list push