javascript之数组的6种去重方法
去重
var arr=[11,11,333,4,4,5,66,66,7];
// 方法一:在新数组内判断不存在时加入
var newarr1=[];
function quchong1(){
for(var i=0;i<arr.length;i++){
if(newarr1.indexOf(arr[i])==-1){
newarr1.push(arr[i])
}
}
console.log(newarr1)
}
quchong1()
// 方法二:前后数组比较,若相等,跳过该数
var newarr2=[];
function quchong2(){
for(var i=0;i<arr.length;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]==arr[j]){
j=++i
}
}
newarr2.push(arr[i])
}
return newarr2
}
quchong2()
console.log(newarr2)
// 方法三:es6 Set自动去除重复数据
let newarray3 =[...new Set(arr)] ;
console.log(newarray3);
// 方法四
var a = {}, newarr4 = []
function quchong4() {
for (var i = 0; i <arr.length; i++) {
var arr1 = arr[i];
var d = (typeof arr1) + arr1;
if (a[d] === undefined) {
newarr4.push(arr1);
a[d] = 1;
}
} }
quchong4();
console.log(newarr4);
// 方法五:自己与自己比较,若相等,删除该位置的数据
var newarray5=arr;
for (var i = 0; i < newarray5.length; i++) {
for (var j = 0; j < newarray5.length; j++) {
if(i!=j){
if(newarray5[j] == newarray5[i]){
newarray5.splice(i,1)
}
}
}
}
console.log(newarray5)
// 方法六:indexof每次只返回第一个元素的位置,
var newarray6 = arr.filter(function (element, index, arr2) {
return arr2.indexOf(element) === index;
});
console.log(newarray6)
去空
String.prototype.trim=function(){
return this.replace(/(^\s+)|(\s+$)g,'')
}
str.trim()
function trim(str){
return str.replace(/(^\s+)|(\s+$)/g,'')
}
trim(str)
原生数组排序
function sort(arr){
for(var i=0;i<arr.length;i++){
for(var j=i;j<arr.length;j++){
if(arr[i]>arr[j]){
var max=arr[i];
arr[i]=arr[j];
arr[j]=max;
}
}
}
}
sort([....])
数组方法排序
arr.sort(function(a,b){return a-b})
注:
a-b升序
b-a降序
javascript之数组的6种去重方法的更多相关文章
- JavaScript中数组的两种排序方法详解(冒泡排序和选择排序)
一.冒泡排序的原理(从小到大) 相邻两个数进行比较,如果前一个数大于后一个数,那么就交换,否则不交换 原理剖析 比如有一组含有6个数字的数:5.3.7.2.1.6一共6个数字,做5次循环,每次循环相邻 ...
- JS中的五种去重方法
JS中的五种去重方法 第一种方法: 第二种方法: 第三种方法: 第四种方法: 第五种方法:优化遍历数组法 思路:获取没重复的最右一值放入新数组 * 方法的实现代码相当酷炫,* 实现思路:获取没重复的 ...
- JavaScript获取数组最小值和最大值的方法
本文实例讲述了JavaScript获取数组最小值和最大值的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 var arr = new Array(); arr[0] = 100; ...
- javascript中数组的22种方法
× 目录 [1]对象继承 [2]数组转换 [3]栈和队列[4]数组排序[5]数组拼接[6]创建数组[7]数组删改[8]数组位置[9]数组归并[10]数组迭代[11]总结 前面的话 数组总共有22种方法 ...
- javascript中数组的22种方法 (转载)
前面的话 数组总共有22种方法,本文将其分为对象继承方法.数组转换方法.栈和队列方法.数组排序方法.数组拼接方法.创建子数组方法.数组删改方法.数组位置方法.数组归并方法和数组迭代方法共10类来进行详 ...
- JavaScript数组的三种定义方法
数组的定义: <script type="text/javascript"> // <!--声明数组--> // 1.先声明数组长度,后进行赋值 var a ...
- Java 数组的三种创建方法
public static void main(String[] args) { //创建数组的第一种方法 int[] arr=new int[6]; int intValue=arr[5]; //S ...
- Java 数组的三种创建方法,数组拷贝方法
public static void main(String[] args) {//创建数组的第一种方法int[] arr=new int[6];int intValue=arr[5];//Syste ...
- AJPFX关于Java中运用数组的四种排序方法
JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法.冒泡法.选择排序法.插入排序法.快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现.冒泡法是运用遍历数组进行比 ...
随机推荐
- openssl搭建双向认证https
http://www.barretlee.com/blog/2015/10/05/how-to-build-a-https-server/ http://blog.163.com/fangjinbao ...
- 关于RPi.GPIO、BCM2835 c library、WiringPi、Gertboard
1.RPi.GPIO//RPi.GPIO-0.5.5.tar.gz 开发者:python官网:https://www.python.org/ 官网:https://pypi.python.org/py ...
- Codeforces 735 E Ostap and Tree
Discription Ostap already settled down in Rio de Janiero suburb and started to grow a tree in his ga ...
- 用canal监控binlog并实现mysql定制同步数据的功能
业务背景 写任何工具都不能脱离实际业务的背景.开始这个项目的时候是因为现有的项目中数据分布太零碎,零零散散的分布在好几个数据库中,没有统一的数据库来收集这些数据.这种情况下想做一个大而全的会员中心系统 ...
- springBoot 跨域处理
首先喝水不忘挖井人,博客参考:https://www.cnblogs.com/nananana/p/8492185.html 方式一:新增一个configration类 或 在Application中 ...
- java基础之IO流(一)字节流
java基础之IO流(一)之字节流 IO流体系太大,涉及到的各种流对象,我觉得很有必要总结一下. 那什么是IO流,IO代表Input.Output,而流就是原始数据源与目标媒介的数据传输的一种抽象.典 ...
- 6.JAVA语言基础部分--数据库操作
操作数据数据流程:得到Connecnt->获取Statement对象->执行sql语句返回ResultSet 1.通过DriverManager.getConnection("j ...
- Nginx阻止DDoS攻击的教程收集(转)(待实践)
DDoS估计是一个非常头痛的问题. 分布式拒绝服务攻击(DDoS)指的是通过多台机器向一个服务或者网站发送大量看似合法的数据包使其网络阻塞.资源耗尽从而不能为正常用户提供正常服务的攻击手段.随着互联网 ...
- phpQuery用法总结
项目下载地址:http://code.google.com/p/phpquery/ 获取内容的方法: 第一种:newDocumentFile phpQuery::newDocumentFile($ur ...
- 什么场景应该用 MongoDB ?
摘要: 月初在云栖社区上发起了一个 MongoDB 使用场景及运维管理问题交流探讨 的技术话题,有近5000人关注了该话题讨论,这里就 MongoDB 的使用场景做个简单的总结,谈谈什么场景该用 Mo ...