我在下面有兩個示例陣列。
let arr1 = [
{ key: "WIHUGDYVWJ", className: "science" },
{ key: "qwljdhkuqwdnqwdk", className: "english" },
{ key: "likubqwd", className: "robotics" }
];
let arr2 = [
{ key: "WIHUGDYVWJ", title: "math" },
{ key: "qwljdhkuqwdnqwdk", title: "english" },
{ key: "likubqwd", title: "robotics" }
];
如何過濾 arr1 以僅獲取具有與 arr2 專案的“標題”值匹配的“類名”值的專案?(預計僅保留帶有“英語”和“機器人”的專案)
如何過濾 arr1 以僅獲取具有與 arr2 專案的“標題”值不匹配的“類名”值的專案?(希望只保留帶有“科學”的專案)
謝謝!
uj5u.com熱心網友回復:
let arr1 = [
{ key: "WIHUGDYVWJ", className: "science" },
{ key: "qwljdhkuqwdnqwdk", className: "english" },
{ key: "likubqwd", className: "robotics" }
];
let arr2 = [
{ key: "WIHUGDYVWJ", title: "math" },
{ key: "qwljdhkuqwdnqwdk", title: "english" },
{ key: "likubqwd", title: "robotics" }
];
// q1 answer
console.log(arr1.map(arr1Item => arr2.filter(arr2Item => arr1Item.className === arr2Item.title)).flat());
// q2 answer
console.log([... new Set(arr2.map(arr2Item => arr1.find(arr1Item => arr2Item.title !== arr1Item.className)))])
我盡可能在不使用for,陳述句的情況下寫作。if/else此代碼可能不是最好的。我認為它可以進一步改進。
希望我的回答有幫助
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/437281.html
標籤:javascript 筛选
上一篇:從ISO獲取可讀日期
下一篇:Javascript-上一個按鈕
