Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在不使用Set的情况下杀死数组中的重复项?_Javascript_Arrays - Fatal编程技术网

Javascript 如何在不使用Set的情况下杀死数组中的重复项?

Javascript 如何在不使用Set的情况下杀死数组中的重复项?,javascript,arrays,Javascript,Arrays,如何在不使用Set的情况下删除数组中的所有重复项(因为它会扰乱顺序) 为什么我的带拼接的循环方法不起作用 让结果=[ ‘j’、‘a’、‘a’、‘v’, ‘a’、‘a’、‘s’、‘c’, “r”、“i”、“p”、“t” ] ; for(设i=0;iv!==a[i-1]); console.log(…结果)您的方法在您的条件下失败: if (result[i] === result[i + 1]) 因为您只检查下一项是否与当前项相同,而不是检查整个数组 要解决这个问题,您可以创建一个新数组,并仅

如何在不使用Set的情况下删除数组中的所有重复项(因为它会扰乱顺序)

为什么我的带拼接的循环方法不起作用

让结果=[
‘j’、‘a’、‘a’、‘v’,
‘a’、‘a’、‘s’、‘c’,
“r”、“i”、“p”、“t”
]
;
for(设i=0;iconsole.log(result)/[“j”、“v”、“a”、“a”、“s”、“c”、“r”、“i”、“p”、“t”]
您可以筛选数组并查看前一个数组

const
数据=['j','a','a','v','a','a','s','c','r','i','p','t'],
结果=数据.filter((v,i,a)=>v!==a[i-1]);

console.log(…结果)您的方法在您的条件下失败:

if (result[i] === result[i + 1])
因为您只检查下一项是否与当前项相同,而不是检查整个数组

要解决这个问题,您可以创建一个新数组,并仅将不存在的值推入该数组,从而消除重复项

const result2 = [];
for (let i = 0; i < result.length; i += 1) {
    if (result2.indexOf(result[i])>-1) {
    continue;
  }
  result2.push(result[i]);
}
constresult2=[];
for(设i=0;i-1){
继续;
}
结果2.推送(结果[i]);
}

我认为要从数组中删除重复项,请编写一个函数来执行此操作,并返回数组中包含唯一项的数组。请查找以下服务于建议的代码

function removeDuplicate(data) {
const tempArray = [];
data.forEach( (item) => {
  if (tempArray.indexOf(item) === -1) {
    tempArray.push(item);
  }
});
return tempArray;
}

让结果=[ ‘j’、‘a’、‘a’、‘v’, ‘a’、‘a’、‘s’、‘c’, “r”、“i”、“p”、“t” ];


结果=移除的副本(结果)

“不使用Set(因为它会干扰顺序)”sets保留插入顺序。“因为它会干扰顺序”不会,但文本和预期输出冲突。你的意思是要删除所有的顺序副本而不是所有的副本吗?很可能是需要的解决方案(javascript:),但从技术上讲,这会复制“a”,所以不是解决方案asked@malarres,但它返回所需的模式。@malarres否?至少结果与OP的预期输出相同。我想他们真的想问如何删除连续的重复项。OP问题:
我如何在不使用Set的情况下删除数组中的所有重复项(因为这会扰乱顺序)
但你是对的
预期输出->[“j”、“a”、“v”、“a”、“s”、“c”、“r”、“I”、“p”、“t”]