首页 > 编程语言 > 详细

数组去重问题

时间:2018-10-13 01:39:53      阅读:170      评论:0      收藏:0      [点我收藏+]

 

今天在看数组去重的题 遇到了这个比较有意思的代码

   代码如下

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‘] 他俩指向的是同一个位置
我输出了一下
技术分享图片

他俩指的是同一个位置

技术分享图片

也就是说 哈希数组的键值队 的键默认是带双引号的 也可以省略不带引号;

 

 

数组去重问题

原文:https://www.cnblogs.com/ysdemo/p/9780986.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!