3 回答
TA贡献1796条经验 获得超10个赞
这是我会怎么做它看看当前元素是否是具有当前值的数组的第一个元素,如果不是则替换它
在非常大的阵列上可能需要一些时间
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贡献1866条经验 获得超5个赞
您可以关闭 aSet并检查是否已经看到该值。
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贡献1815条经验 获得超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;
}
});
添加回答
举报