您好:) 我如何在兩個(或更多)陣列中找到重復項并顯示出來?我想使用過濾器,這是個好主意嗎?
`
let monday = ["task1", "task2", "task3", "task4", "taks5", "task6", "taks7"];
let tuesday = ["task2", "task3", "task4", "task5", "taks6"];
let wendesday = ["task7", "task8", "task9", "task10", "taks11", "task12"];
const takePastList = monday
.concat(tuesday)
.join(" ")
.filter((task, index) => index !== monday.indexOf(task));
` concat 有效但沒有過濾;)
問候并感謝您
當我使用許多方法處理許多陣列時,了解如何修復它并了解如何使用過濾器或其他方法查找重復項。
uj5u.com熱心網友回復:
可能是這樣的可能適合您的需要
let monday = ["task1", "task2", "task3", "task4", "taks5", "task6", "taks7"];
let tuesday = ["task2", "task3", "task4", "task5", "taks6"];
let wendesday = ["task7", "task8", "task9", "task10", "taks11", "task12"];
//solution
let allTasks = monday.concat(tuesday, wendesday);
let duplicates = allTasks.filter((item, index) => allTasks.indexOf(item) !== index);
console.log(duplicates);
uj5u.com熱心網友回復:
如果您試圖保留和顯示重復的值,那么您在正確的行上,但使用 .join(" ") 時犯了錯誤。
.join()是一個array method回傳string連接在一起成為一個string變數的陣列元素的一個。
然后你試圖將你的.filter(an array method) 應用到 a string。
如果您洗掉該.join(" ")步驟,您的例程將回傳一個陣列,其中包含兩個.concat已生成陣列中存在的值。
可以再次處理生成的陣列以添加第三個陣列,如此兩步代碼片段(基于您的.map函式)所示。
let monday = ["task1", "task2", "task3", "task4", "taks5", "task6", "taks7"];
let tuesday = ["task2", "task3", "task4", "task5", "taks6"];
let wednesday = ["task7", "task8", "task9", "task10", "taks11", "task12"];
const takePastList = monday
.concat(tuesday)
.filter((task, index) => index !== monday.indexOf(task));
const nextAr = takePastList.concat(wednesday).filter((task, index) => index !== takePastList.indexOf(task));
console.log(takePastList);
(星期三拼寫更正)
在實踐中,您可能希望構建一個可以重復或遞回呼叫的函式,以包含更多陣列以進行比較。有一個警告 - 如果第一個陣列中有一個元素在第二個陣列中不存在,則它不會出現在第一個回圈的輸出中,因此如果將第三個陣列與前兩個程式的輸出。這是否是一個問題取決于您需要什么。
基本上,你的.map功能很好,但它不應該應用于string
uj5u.com熱心網友回復:
如果您正在尋找重復項,這是解決方案。
let monday = ["task1", "task2", "task3", "task4", "task5", "task6", "task7"];
let tuesday = ["task2", "task3", "task4", "task5", "task6"];
let wendesday = ["task7", "task8", "task9", "task10", "task11", "task12"];
const takePastList = monday
.concat(tuesday);
const duplicates = takePastList.filter((item, index) => index !== takePastList.indexOf(item));
console.log(duplicates)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/534334.html
上一篇:打字稿可選物件引數瘋狂
