编写一个js算法,用一次循环将数组中出现2次或者以上的值删掉

题目描述

var arr = [1, 2, 4, 1, 5, 5];
最终返回:[2, 4]

自己的CODE

const removeDuplicates = (newArr) => {
  const obj = {};
  for (let i = 0; i >= 0 && i < newArr.length; i += 1) {
    if (newArr[i] in obj) {
      newArr.slice(obj[newArr[i]], 1);
      newArr.splice(i, 1);
      i -= 2;
    }
    obj[newArr[i]] = i;
  }
  console.log(" result: ", newArr);
};

removeDuplicates(arr);

求大神指导最优解法

90 views
Comments
登录后评论
Sign In
·

我在浏览器里执行了一下,你这个好像不太行,应该是你slice用错了,这个是返回新数组的

这题好像用哈希表会比较好,但貌似js没现成的