我正在嘗試將給定的陣列過濾為僅具有重復數字的新陣列:
const array = [1, 1, 1, 2, 3, 4, 5, 6, 7, 7, 8, 8, 2, 2, 2, 2, 2, 2, 2, 1, 1];
我試過這段代碼:
const findDuplicates = (arr) => arr.filter((item, index) => arr.indexOf(item) !== index);
但我得到的輸出是這樣的:
[1, 1, 7, 8, 2, 2, 2, 2, 2, 2, 2, 1, 1]
如您所見,在此陣列中缺少數字。它應該是這樣的:
[1, 1, 1, 7, 7, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1]
我做錯了什么?
uj5u.com熱心網友回復:
您可以使用上一個索引或下一個索引處的值檢查該值。
const
array = [1, 1, 1, 2, 3, 4, 5, 6, 7, 7, 8, 8, 2, 2, 2, 2, 2, 2, 2, 1, 1],
result = array.filter((value, i, { [i - 1]: prev, [i 1]: next }) =>
prev === value || value === next
);
console.log(...result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/463415.html
標籤:javascript 数组
