3 回答

TA貢獻(xiàn)1796條經(jīng)驗 獲得超10個贊
這是我會怎么做它看看當(dāng)前元素是否是具有當(dāng)前值的數(shù)組的第一個元素,如果不是則替換它
在非常大的陣列上可能需要一些時間
const input = [1,1,1,1,2,2,2,3]
let output = input.map(
(el, i) => input.indexOf(el) === i ? el : 'R'
)
console.log(output)

TA貢獻(xiàn)1866條經(jīng)驗 獲得超5個贊
您可以關(guān)閉 aSet并檢查是否已經(jīng)看到該值。
let array = [1, 1, 1, 1, 2, 2, 2, 3],
result = array.map((seen => v => seen.has(v) ? 'R' : (seen.add(v), v))(new Set));
console.log(...result);
檢查先前值的方法
let array = [1, 1, 1, 1, 2, 2, 2, 3],
result = array.map((v, i, { [i - 1]: l }) => l === v ? 'R' : v);
console.log(...result);

TA貢獻(xiàn)1815條經(jīng)驗 獲得超13個贊
這實際上通過使用集合 ( Set ) 非常簡單。
const initialArray = [1,1,1,1,2,2,2,3];
const valuesSet = new Set();
const newArray = initialArray.map((value) => {
if (valuesSet.has(value)) {
return 'R';
} else {
valuesSet.add(value);
return value;
}
});
添加回答
舉報