JavaScript找出唯一不同的数字

Description:

You are given an odd-length array of integers, in which all of them are the same, except for one single number.

Implement the method stray which accepts such array, and returns that single different number.

The input array will always be valid!(odd-length >= 3)
Examples:

[1, 1, 2] => 2

[17, 17, 3, 17, 17, 17, 17] => 3

my answer:用检索法

  • IndexOf()返回某个指定的字符串值在字符串中首次出现的位置
  • lastIndexOf返回某个指定的字符串值在字符串中最后出现的位置
function stray(numbers){
  for (var i in numbers){
     if (numbers.indexOf(numbers[i]) === numbers.lastIndexOf(numbers[i])){return numbers[i];}
  }
}

console.log(stray([1, 1, 2])); // 2
console.log(stray([17, 17, 3, 17, 17, 17, 17]));  // 3

other answer:

  • 用sort()排序
function stray(numbers) {
  var a = numbers.sort();
  
  if(a[0] != a[1]) {
    return a[0];
  } 
  return a[a.length-1];
}

console.log(stray([1, 1, 2])); // 2
console.log(stray([17, 17, 3, 17, 17, 17, 17]));  // 3
原文地址:https://www.cnblogs.com/kid2333/p/7447666.html