【发布时间】:2022-01-20 06:53:13
【问题描述】:
我正在尝试从数组中删除重复项,但我得到了两个额外的数字“2”。当我用 0 替换元素时它工作正常。只有当我 pop() 元素时它才会出错。
对于这个输入 [0,0,1,1,1,2,2,3,3,4],我希望是 [0,1,2,3,4]。为什么使用pop()时多了两个2?
function removeDuplicate(arr) {
var i = 0;
var j = 1;
while (j < arr.length) {
if (arr[i] === arr[j]) {
j++;
} else {
arr[++i] = arr[j];
j++;
}
}
for (i = i + 1; i < arr.length; i++) {
// arr[i] = 0;
arr.pop();
}
return arr;
}
const ans = removeDuplicate([0, 0, 1, 1, 1, 2, 2, 3, 3, 4])
console.log(ans);
【问题讨论】:
-
你的问题是你的代码有什么问题,对吧?没有其他方法可以解决问题?如果是这样,我会在标题和文本中更清楚地说明这一点。目前,这是至少十几个其他有答案的问题的重复。
-
如果您正在寻找代码审查,您应该将您的问题移至codereview.stackexchange.com,他们会指出所有错误,以及您的代码中可以改进的地方。如果您只是在寻找如何删除重复项,那么 SO 上已经有很多答案了
-
这对您有帮助吗? javascripttutorial.net/array/…
-
不,我在问为什么我在 pop() 上得到错误的答案。请只说。面试时被问到这个问题,被拒了。
标签: javascript arrays function