为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

萧十郎 2022-06-05 09:40:01
我正在尝试做这样的事情: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]
查看完整描述

2 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

您可以检查前一个元素,如果不相等,则将实际值分配给结果数组的实际索引。


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);


查看完整回答
反对 回复 2022-06-05
?
Qyouu

TA贡献1786条经验 获得超11个赞

假设空值未定义,您可以使用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);


查看完整回答
反对 回复 2022-06-05
  • 2 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信