码迷,mamicode.com
首页 > 编程语言 > 详细

数组去重问题

时间:2018-10-13 02:37:15      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:双引号   就是   http   color   image   var   info   哈希   img   

 

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

   代码如下

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

他俩指的是同一个位置

技术分享图片

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

 

 

数组去重问题

标签:双引号   就是   http   color   image   var   info   哈希   img   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!