为什么'in'运算符允许值被推两次?

时间:2017-02-26 16:59:34

标签: javascript

在下面的代码示例中,我理解这段代码没有找到给定数组中的唯一值,但我不知道如何解决玩具问题,但想知道为什么输出包含值2两次。 [1,2,3,4,5,5]

let arr = [1,2,3,4,5,5,3,2,1];

function findUniq(arr) {
  let other = [];
  let reduced = arr.reduce(function(allNums, num){
    if(num in allNums) {
      other.push(num);
    } else {
      allNums.push(num);
    }
    return allNums;
  }, []);
  return reduced;
}

console.log(findUniq(arr));

在我看来,当arr [5]被评估时,它应该使用'if语句'的第一部分并将其推入'other'数组。 (但也许我不能正确理解'in'运算符)

0 个答案:

没有答案