首页 > 解决方案 > 在 JavaScript 中从数组中查找唯一数字

问题描述

请让我知道这是从数组中查找唯一编号的最佳方法吗?

var singleNumber = function(nums) {
  for (var i = 0; i < nums.length; i++) {
    if (i === 0) {
      nums[0] = 0 ^ nums[0];
      /* console.log(nums[0]); */
    } else {
      nums[0] ^= nums[i];
      /* console.log(nums[0]); */
    }

  }
  console.log(nums[0]);
  return nums[0];


};

singleNumber([2, 2, 3, 3, 4]);

如果您对此有更好的方法,请帮助我。

标签: javascriptarrays

解决方案


我创建了两个从传递的数组中返回唯一数字的函数:

var getFirstUniqueNumber = function(nums) {
    var number = null;
    var map = {};
    nums.forEach((val) => {
        if (!map[val] && (number === null)) number = val;
        if (map[val] && (number !== null)) number = null;
        map[val] = true;
    });
    return number;
};

var getLastUniqueNumber = function(nums) {
    var number = null;
    var map = {};
    nums.forEach((val) => {
        if (!map[val]) number = val;
        map[val] = true;
    });
    return number;
};

我在这里创建了一个小提琴:https ://jsfiddle.net/u88qgxrr/2/

他们按照名字说的做,你可能想要最后一个唯一的数字!


推荐阅读