数组去重问题
Posted ysdemo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组去重问题相关的知识,希望对你有一定的参考价值。
今天在看数组去重的题 遇到了这个比较有意思的代码
代码如下
function uniq(array){ var temp = {}, r = [], len = array.length, val, type; for (var i = 0; i < len; i++) { val = array[i]; type = typeof val; console.log(‘temp[val]=‘+temp[val]); console.log(‘temp=‘+temp); if (!temp[val]) { temp[val] = [type]; console.log(temp[val]); r.push(val); } else if (temp[val].indexOf(type) < 0) { console.log(temp[val]); temp[val].push(type); r.push(val); } } return r; } var aa = [1,2,"2",4,9,"a","a",2,3,5,6,5]; console.log(uniq(aa));
在这串代码里有一点比较有意思
temp这个对象 存的是aa 数组里的每一个元素的元素类型
他是以键值对的方式存储的
这里有个temp[2]和temp[‘2‘] 他俩指向的是同一个位置
我输出了一下
他俩指的是同一个位置
也就是说 哈希数组的键值队 的键默认是带双引号的 也可以省略不带引号;
以上是关于数组去重问题的主要内容,如果未能解决你的问题,请参考以下文章