慕碼人8056858
2022-10-21 15:28:32
我想顯示在技能數組上過濾的項目,例如,如果我選擇“HTML”,則顯示項目數組技能中所有帶有“HTML”的項目。如果我選擇兩個技能,則顯示具有兩個技能的項目。我的項目有這些數據:const data = [ { id: "1", name: "project1", techno: ["JAVASCRIPT", "REACTJS"], imageUrl: "link", }, { id: "2", name: "project2", techno: ["HTML", "CSS", "SASS"], imageUrl: "link", }, { id: "3", name: "project3", techno: ["JAVASCRIPT", "HTML"], imageUrl: "link", }];還有我的arrayFilterconst filter = ["JAVASCRIPT", "HTML", "CSS"];目前,我有這個代碼: data .filter((filter) => filter.techno.includes(filter[0])) .map(({ id, ...otherProps }) => ( <ProjectItem key={id} {...otherProps} /> ))謝謝您的幫助
1 回答

郎朗坤
TA貢獻1921條經驗 獲得超9個贊
你可以使用每一個
const data = [
{
id: '1',
name: 'project1',
techno: ['JAVASCRIPT', 'REACTJS'],
imageUrl: 'link',
},
{
id: '2',
name: 'project2',
techno: ['HTML', 'CSS', 'SASS'],
imageUrl: 'link',
},
{
id: '3',
name: 'project3',
techno: ['JAVASCRIPT', 'HTML', 'REACTJS'],
imageUrl: 'link',
},
];
const filter = ['JAVASCRIPT', 'REACTJS'];
const result = data.filter(d => filter.every(t => d.techno.includes(t)));
console.log(result);
添加回答
舉報
0/150
提交
取消