猿问

如何将数组中的某些元素删除到新数组中,并在相同位置保留相同数组长度的无重复元素

我正在尝试做这样的事情:


1)-->take this array [1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8]


2)-->this is the result [1,,2,,3,,4,,5,,6,,7,,8,,]

抱歉,如果我没有展示我自己的解决方案,但实际上我真的不知道如何解决它。


编辑


    let arr=[];

    let arr= [1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8];

    arr.forEach(val=>{

    let previusVal=0;

    if(previusVal!==val){

     arr.push(val);

     }

});

console.log(arr)//wrong->x [1,2,3,4,5,6,7,8,9]


萧十郎
浏览 108回答 2
2回答

富国沪深

您可以检查前一个元素,如果不相等,则将实际值分配给结果数组的实际索引。var array = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8],    result = [];array.forEach((v, i, { [i - 1]: p }) => {    if (p !== v) result[i] = v;});console.log(result);

Qyouu

假设空值未定义,您可以使用Set来保存第一个匹配项,使用 array.prototype.map来创建新数组。const s = new Set();const result = [1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8].map(i => !s.has(i) ? s.add(i) && i : undefined);console.log(result);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答