在JavaScript中查找数组中的唯一数字

时间:2018-05-10 01:27:07

标签: javascript arrays

请告诉我这是从阵列中找到唯一号码的最佳方法吗?



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]);
&#13;
&#13;
&#13;

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

1 个答案:

答案 0 :(得分:2)

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

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/

他们按照名称所说的做,你可能想要最后一个唯一的号码!