亲爱的,我试着用javascript在数组中找到非重复值,我已经编写了一些代码,但是它不能正常工作,..can,你们告诉我problem.thanks在哪里。
var arr = [-1, 2, 5, 6, 2, 9, -1, 6, 5, -1, 3];
var n = arr.length;
var result = '';
function nonrep() {
for (var i = 0; i < n; i++) {
var j;
for (j = 0; j < n; j++)
if (i != j && arr[i] == arr[j]) {
result = arr[i];
break;
}
if (j == n)
return arr[i];
}
return result;
}
console.log(nonrep())
发布于 2018-06-14 10:16:50
一些变化:
unique。i和j,如果等于continue (内)循环。i和j的值并退出(内部)循环,因为找到了一个重复的循环。j和数组l的长度,如果相同,则将值推送到unique。return数组的unique语句。
function getUnique(array) {
var l = array.length,
i, j,
unique = [];
for (i = 0; i < l; i++) {
for (j = 0; j < l; j++) {
if (i === j) {
continue;
}
if (array[i] === array[j]) {
break;
}
}
if (j === l) {
unique.push(array[i]);
}
}
return unique;
}
console.log(getUnique([-1, 2, 5, 6, 2, 9, -1, 6, 5, -1, 3]));
另一种解决方案可能是检查indexOf和lastIndexOf是否返回相同的值。然后你找到了一个独特的价值。
var array = [-1, 2, 5, 6, 2, 9, -1, 6, 5, -1, 3],
unique = array.filter((v, i) => array.indexOf(v) === array.lastIndexOf(v));
console.log(unique);
https://stackoverflow.com/questions/50854750
复制相似问题