我有一個元素串列,如以下資料
[
{
"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]
uj5u.com熱心網友回復:
您需要首先通過使用 a和 use來跟蹤不重復的類別來檢查整個catalogCategories而不是第一個元素。product.catalogCategories[0]mapnew Map
const list = [
{
"title": "First",
"catalogCategories": [ "sport", "economy" ]
},
{
"title": "Second",
"catalogCategories": [ "politics", "tourism" ]
},
{
"title": "Third",
"catalogCategories": [ "sport", "universe" ]
},
{
"title": "Fourth",
"catalogCategories": [ "economy", "politics" ]
}
]
let categoryDataMap = new Map();
for (let product of list) {
if (product.catalogCategories.length > 0) {
product.catalogCategories.map(catalog=>{
if(!categoryDataMap.has(catalog)){
categoryDataMap.set(catalog,{"name": "catalogCategories", "label": catalog, "selected": false, "value": catalog})
}
})
}
}
const categoryData = Array.from(categoryDataMap.values())
console.log(categoryData)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/334968.html
標籤:javascript 数组 列表 推
上一篇:如何在js中制作計時器
下一篇:如何更改表中變數的值?
