猿问

求助 解释下以下代码

function uniqArray (arr) {

  var resArr = []

  var tempObj = {}

  

  for (var i = 0; i < arr.length; i++) {

    var val = arr[i]

    var type = typeof (val)

    

    if (!tempObj[val]) {

      tempObj[val] = [type]

      resArr.push(val)

    } else if (tempObj[val].toString().indexOf(type) < 0) {

      tempObj[val].push(type)

      resArr.push(val)

    }

  }

  

  console.log(tempObj)

  return resArr

}

首先我不明白tempobj={}存在的意义 其次是这两个if 的作用

慕尼黑5688855
浏览 493回答 1
1回答

红糖糍粑

首先说一下,这个函数作用的,是去重的uniqArray([1,2,3,4,'1',1,null,null,undefined,undefined])[1, 2, 3, 4, "1", null, undefined]tempObj就是一个临时对象,起到判断作用的,用来判断数组中的值,是否已经存在过了第一个if作用:如果tempObj没有数组中对应值的类型,就代表返回的结果数组中没有出现过,就添加到返回的结果中第二个if作用:这个作用主要是区分类似数字1和字符串"1"的区别的,
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答