我正在努力尋找解決問題的方法,但目前我無法找到正確的解決方案。
當我有兩個物件陣列時,我想根據類別 ID 進行過濾,并將第二個物件中的資料提取到一個新陣列中,例如:
const array1 = [
{id: 1, name: 'Tropical'},
{id: 2, name: 'Common'}
]
const array2 = [
{id:1, name: 'Banana', category_id: 1},
{id:2, name: 'Mango', category_id: 1},
{id:3, name: 'Apple', category_id: 2},
]
當點擊發生時,我檢測到第一個 ID 并僅使用與 ID 匹配的資料呈現新陣列。 單擊熱帶 新陣列:
[
{id:1, name: 'Banana', category_id: 1},
{id:2, name: 'Mango', category_id: 1},
]
如果有人給我一個關于如何解決這個問題的提示,我會很高興。謝謝 !
uj5u.com熱心網友回復:
如果我錯了,請糾正我,所以你需要一個接收 categoryId 的函式,你需要array2根據它過濾掉category_id
你可以試試這個
const array1 = [{
id: 1,
name: 'Tropical'
},
{
id: 2,
name: 'Common'
}
]
const array2 = [{
id: 1,
name: 'Banana',
category_id: 1
},
{
id: 2,
name: 'Mango',
category_id: 1
},
{
id: 3,
name: 'Apple',
category_id: 2
},
]
function categoryFruits(categoryId) {
return array2.filter(obj => obj.id === categoryId)
}
console.log(categoryFruits(3));
uj5u.com熱心網友回復:
使用reduce映射 array1 中的每個專案并過濾以獲取該 category_id 的專案
const array1 = [{
id: 1,
name: 'Tropical'
},
{
id: 2,
name: 'Common'
}
]
const array2 = [{
id: 1,
name: 'Banana',
category_id: 1
},
{
id: 2,
name: 'Mango',
category_id: 1
},
{
id: 3,
name: 'Apple',
category_id: 2
},
]
const obj = array1.reduce((acc, cur) => {
acc[cur.name] = array2.filter(v => v.category_id === cur.id)
return acc
}, {})
console.log(obj)
uj5u.com熱心網友回復:
您可以執行過濾和獲取array2所有Tropical具有name.array1
const array1 = [
{id: 1, name: 'Tropical'},
{id: 2, name: 'Common'}
]
const array2 = [
{id:1, name: 'Banana', category_id: 1},
{id:2, name: 'Mango', category_id: 1},
{id:3, name: 'Apple', category_id: 2},
]
// take tropical friuts
let tropicalFriuts = array2.filter(x => x.category_id === array1.filter(y => y.name === 'Tropical')[0].id);
console.log(tropicalFriuts);
uj5u.com熱心網友回復:
如果我在根據類別名稱找到 id 之前了解您想要的問題,然后根據此 id 過濾 array2 資料。
const array1 = [{
id: 1,
name: 'Tropical'
},
{
id: 2,
name: 'Common'
}
]
const array2 = [{
id: 1,
name: 'Banana',
category_id: 1
},
{
id: 2,
name: 'Mango',
category_id: 1
},
{
id: 3,
name: 'Apple',
category_id: 2
},
]
const id_key = array1.find(item=>item.name === 'Tropical').id;
const result = array2.filter(item=>item.category_id === id_key);
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/427161.html
標籤:javascript 反应 打字稿
上一篇:將選項引數傳遞給toLocaleString()方法會從輸出中洗掉時間部分
下一篇:生成新的隨機值并存盤在陣列中
