1. 使用JavaScript的数组方法
    Array.prototype.indexOf(el, [,fromIndex])

    el: 代表需要寻找的元素
    formIndex可选,表示开始寻找的下标
    返回值:找到返回下标index,没有返回-1

    function duplicate( numbers ) {
      // 测试非法输入
     if (numbers === []) return -1;
     for (let i = 0; i < numbers.length; i++) {
         if (numbers[i] < 0 || numbers[i] > numbers.length-1) {
             return -1;
         }
     }
     for (let i = 0; i < numbers.length; i++) {
         // 使用indexOf(el,[,fromIndex]),假设没有会返回-1
         if ( numbers.indexOf(numbers[i],i+1) != -1) {
             return numbers[i];
         }
     }
      // 不合法输入-1(没有重复项目)
     return -1;
    }
  2. 不使用数组方法
    1. 数组中元素0~n-1就代表,如果没有重复元素,那么每个下标就对应一个值
    function duplicate( numbers ) {
     // 测试非法输入
     if (numbers === []) return -1;
     for (let i = 0; i < numbers.length; i++) {
         if (numbers[i] < 0 || numbers[i] > numbers.length-1) {
             return -1;
         }
     }
     for (let i = 0; i < numbers.length; i++) {
         while (numbers[i] !== i) {
             if (numbers[i] === numbers[numbers[i]]) {
                 return numbers[i];
             }
             let temp = numbers[i];
             numbers[i] = numbers[temp];
             numbers[temp] = temp;
         }
     }
     return -1;
    }