JavaScript数组去重的四种方法
今天,洗澡的想一个有趣的问题,使用js给数组去重,我想了四种方法,虽然今天的任务没有完成,5555:
不多说,po代码:
//方法一:简单循环去重
Array.prototype.unique1 = function(){
var temp = [];
for(var i=0; i < this.length; i++){
if(temp.indexOf(this[i]) == -1){
temp.push(this[i]);
}
}
return temp;
}
//方法二:使用排序后,依次比较的方法
Array.prototype.unique2 = function(){
this.sort();
var temp = [this[0]];
var j = 0;
for(var i= 1; i < this.length; i++){
if(this[i] !== temp[j]){
temp.push(this[i]);
j++;
}
}
return temp;
}
//方法三:json去重
Array.prototype.unique3 = function(){
var temp = {};
var re = [];
var j = 0;
for(var i = 0; i < this.length; i++){
if(!temp[this[i]]){
temp[this[i]] = this[i];
re.push(this[i]);
}
}
return re;
}
//方法四:如果数组中的元素是所有不同的,那么数组的第几个位置i跟indexof得出的值时相同的,否则重复啦!
Array.prototype.unique4 = function(){
var temp = [this[0]];
for(var i = 1; i < this.length; i++){
if(this.indexOf(this[i]) == i){
temp.push(this[i]);
}
}
return temp;
}
希望大家多多指教,不吝赐教~~
JavaScript数组去重的四种方法的更多相关文章
- JavaScript数组去重的几种方法
这个老问题,网上普遍都有了,为什么要再写一遍呢,主要是为了记个笔记... 遍历时搜索结果数组 思路很明确,如下 新建一个数组存放结果 循环遍历原数组,对于每一个元素,在结果数组中搜索是否存在 若不存在 ...
- JavaScript数组去重的10种方法
「数组去重」的确是个老生常谈的问题了,但是你真正的掌握了吗?平时开发中是不是用最简单粗暴的方法来去重?注意到它的性能问题了吗?当面试官对你回答的四个去重方法都不满意时你可以想出更简单且性能能更好的方法 ...
- [转] JavaScript数组去重(12种方法)
数组去重,一般都是在面试的时候才会碰到,一般是要求手写数组去重方法的代码.如果是被提问到,数组去重的方法有哪些?你能答出其中的10种,面试官很有可能对你刮目相看.在真实的项目中碰到的数组去重,一般都是 ...
- javascript数组去重的3种方法
前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! javascript数组去重 <!DOCTYPE html> <html> < ...
- JavaScript数组去重(12种方法,史上最全)
参考博客:https://segmentfault.com/a/1190000016418021?utm_source=tag-newest
- JavaScript中数组去重的几种方法
JavaScript中数组去重的几种方法 正常情况下,数据去重的工作一般都是由后端同事来完成的,但是前端也要掌握好处理数据的能力,万一去重的工作交给我们大前端处理,我们也不能怂呀.现在我总结了一些去重 ...
- js中数组去重的几种方法
js中数组去重的几种方法 1.遍历数组,一一比较,比较到相同的就删除后面的 function unique(arr){ ...
- JavaScript数据类型判断的四种方法
码文不易啊,转载请带上本文链接呀,感谢感谢 https://www.cnblogs.com/echoyya/p/14416375.html 本文分享了JavaScript类型判断的四种方法:typeo ...
- 关于数组去重的几种方法-------javascript描述
第一种方法:借助json对象来实现,若json对象中无该属性则添加,否则不添加,最后返回json对象的属性,时间复杂度为O(n) function deleteArrayRepeat(arr) { v ...
随机推荐
- 【转】ruby rake执行rspec
RSpec 是Ruby的一个行为驱动开发(BDD)工具,当前的版本是 2.10.根据其入门文档,安装好之后,可以使用 rspec 命令来运行“测试”.但在某些情况下,如果参数较多,使用该命令并不方便: ...
- # 第二周课堂实践以及MyOD
第二周课堂实践以及MyOD 之前使用的虚拟机出现问题被我删掉了,开始学着使用Mac系统自带的终端.在课堂上出现了问题,询问王雄老师也没有解决,课下先使用了实验楼环境进行实验,后来又在Mac重新进行了尝 ...
- Nginx入门篇(三)之虚拟主机配置
一.虚拟主机概念 所谓虚拟主机,在Web服务当中就是一个独立的网站站点,这个站点对应独立的域名(也有可能是IP或者端口),具有独立的程序和资源目录,可以独立地对外提供服务供用户访问. 这个独立的站点在 ...
- python3工作环境部署+spyder3+jupyter notebook
1.python3安装 1)官网去下载python3.7版本,双击安装,只要注意勾选写到PATH就行,其它直接NEXT. 2)安装完成,CMD键入 python 回车,跳出python界面就是成功. ...
- 1、maven打包 install package deploy区别
maven package:打包到本项目,一般是在项目target目录下.如果a项目依赖于b项目,打包b项目时,只会打包到b项目下target下,编译a项目时就会报错. maven install:打 ...
- 2017"百度之星"程序设计大赛 - 初赛(A) 小C的倍数问题
谢谢帮忙刷访问量! 题解当然下考再发啦 答案为P-1的约数个数 // It is made by XZZ #include<cstdio> #include<algorithm> ...
- Entity Framework for Oracle 基本配置
1.需要安装ODAC 如果不安装ODAC,在数据源连接的配置中,看不到Oracle的选项 我下载安装的组件是32-bit Oracle Data Access Components (ODAC) w ...
- toString()方法简单分析
问题描述 今天在使用spotbugs代码走查时发现这样一个问题,如下, String[] myArray=new String[] {"1","2"," ...
- SQL创建数据库、建表、填入内容
--创建数据库 create database Information go --使用数据库 use Information go --创建表 create table Student ( Sno ) ...
- 我们一起学习WCF 第四篇单通讯和双向通讯
前言:由于个人原因很久没有更新这个系列了,我会继续的更新这系列的文章.这一章是单向和双向通讯.所谓的单向就是只有发送却没有回复,双向是既有发送还有回复.就是有来无往代表单向,礼尚往来表示双向.下面我用 ...