首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用JavaScript在数组中查找非重复数字?

如何使用JavaScript在数组中查找非重复数字?
EN

Stack Overflow用户
提问于 2018-06-14 10:00:12
回答 13查看 14.5K关注 0票数 0

亲爱的,我试着用javascript在数组中找到非重复值,我已经编写了一些代码,但是它不能正常工作,..can,你们告诉我problem.thanks在哪里。

代码语言:javascript
复制
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())

EN

Stack Overflow用户

发布于 2018-06-14 10:16:50

一些变化:

  • 将所有变量声明移到函数中。
  • 对提交的数组使用函数参数,保持函数的纯正。
  • 预先在函数顶部声明所有需要的变量。
  • 以数组作为结果数组unique
  • 检查ij,如果等于continue (内)循环。
  • 检查ij的值并退出(内部)循环,因为找到了一个重复的循环。
  • 在内循环结束时进行检查,检查索引j和数组l的长度,如果相同,则将值推送到unique
  • 在外部循环的末尾使用一个带有return数组的unique语句。

代码语言:javascript
复制
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]));

另一种解决方案可能是检查indexOflastIndexOf是否返回相同的值。然后你找到了一个独特的价值。

代码语言:javascript
复制
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);

票数 3
EN
查看全部 13 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50854750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档