文档章节

8_引用类型(【五】object练习去掉数组的重复项)

1217528969
 1217528969
发布于 2015/03/02 14:32
字数 230
阅读 15
收藏 0
//数组过滤重复值
//1  把数组转成js的对象
//2  把数组中的值变成js对象中的key
//3  把这个对象的key转换为数组
var arr = [2, 1, 2, 10, 2, 3, 5, 5, 1, 10, 13];

//数组转换为对象
function array2obj(arr){
    var obj = {};
    for(var i=0; i<arr.length; i++){
        obj[arr[i]] = 1;
    }
    /*
    也可以使用ECMAScript5中的新方法forEach()
    arr.forEach(function(currentValue, index, array) {
        obj[currentValue] = 1;
    });
    */
    return obj;
}

//对象转换为数组
function obj2array(obj){
    var arr = [];
    for(var attr in obj){
        //使用hasOwnProperty()方法判断是否为对象自身的属性,而不是对象的原型的属性
        if(obj.hasOwnProperty(attr)){
            arr.push(attr);
        }
    }
    return arr;
}

//综合的方法 去掉数组中的重复项
function uniq(arr){
    return obj2array(array2obj(arr));
}

//数组排序方法
function compare(value1, value2){
    return value1 - value2;
}

var uniqArr = uniq(arr);
console.info(uniqArr.sort(compare));


© 著作权归作者所有

共有 人打赏支持
1217528969
粉丝 1
博文 27
码字总数 14810
作品 0
济南
第三章 数组相关操作

编写一段代码,将a设置为一个n个随机整数的数组,要求随机数介于0(包含)和n(不包含)之间。 2. 编写一个循环,将整数数组中相邻的元素置换。例如,Array(1,2,3,4,5)经过置换后变为Array(2,1,4...

小萝卜_
2016/06/08
39
0
javaScript中的BOM和DOM对象

1、前端部分: HTML CSS js(javascript): 2、js的历史: js的版本变迁:ES6 ES2015(ECMAScript) js hello world 3、对话框 alert confirm prompt 变量和常量 常见运算符 4、数据类型 7种...

AAA年华
2017/12/11
0
1
2018-5-31 JavaScript面试题

前端面试题,保持更新...... 一、数组去重 1.1 常规方法 1.2 ES6新特性 二、去除字符串中的空格 2.1 trim()方法 trim():只能去除两边的空格,无法去除中间的空格 trimLeft():去除左边的空格...

瑾瑜爱上猫
05/31
0
0
JS数组去重复

面试前端必须准备的一个问题:怎样去掉Javascript的Array的重复项。据我所知,百度、腾讯、盛大等都在面试里出过这个题目。 这个问题看起来简单,但是其实暗藏杀机。 考的不仅仅是实现这个功...

阿联酋挖石油
2016/06/02
30
0
JavaScript创建对象方式总结

今天阅读了JavaScript高级程序设计的第6章,关于对象创建的方式,这里做下总结,巩固下知识 JavaScript创建对象的五种方式: 一、通过字面量或Object构造函数创建 1、示例: 2、优点:简单灵...

kolbe
2016/05/30
185
0

没有更多内容

加载失败,请刷新页面

加载更多

Kali Linux Docker 練習

docker pull kalilinux/kali-linux-docker docker run -t -i kalilinux/kali-linux-docker /bin/bash apt-get update apt-get install htop apt-get install nmap apt-get install wpscan ap......

BaiyuanLab
今天
1
0
通俗大白话来理解TCP协议的三次握手和四次分手

最近在恶补计算机网络方面的知识,之前对于TCP的三次握手和四次分手也是模模糊糊,对于其中的细节更是浑然不知,最近看了很多这方面的知识,也在系统的学习计算机网络,加深自己的CS功底,就...

onedotdot
今天
2
0
TiDB 在爱奇艺的应用及实践

爱奇艺,中国高品质视频娱乐服务提供者,2010 年 4 月 22 日正式上线,推崇品质、青春、时尚的品牌内涵如今已深入人心,网罗了全球广大的年轻用户群体,积极推动产品、技术、内容、营销等全方...

TiDB
今天
1
0
Web系统大规模并发:电商秒杀与抢购

一、大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个Web系统遇到了很多的问题和挑战。如果Web系统不做针对性的优化,会轻而易举地陷入到异常...

xtof
今天
3
0
代码质量管理平台-sonarqube

在工作中,往往开发的时候会不怎么注重代码质量的人很多,存在着很多的漏洞和隐患等问题,sonarqube可以进行代码质量的审核,而且十分的残酷。。。。。接下来我们说下怎么安装 进入官网下载:...

落叶清风
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部