为了账号安全,请及时绑定邮箱和手机立即绑定

求助 解释下以下代码

求助 解释下以下代码

慕尼黑5688855 2018-12-13 14:15:34
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 的作用
查看完整描述

1 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

首先说一下,这个函数作用的,是去重的


uniqArray([1,2,3,4,'1',1,null,null,undefined,undefined])


[1, 2, 3, 4, "1", null, undefined]

tempObj就是一个临时对象,起到判断作用的,用来判断数组中的值,是否已经存在过了


第一个if作用:

如果tempObj没有数组中对应值的类型,就代表返回的结果数组中没有出现过,就添加到返回的结果中


第二个if作用:

这个作用主要是区分类似数字1和字符串"1"的区别的,


查看完整回答
反对 回复 2019-01-13
  • 1 回答
  • 0 关注
  • 492 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信