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"的区别的,
添加回答
举报
0/150
提交
取消