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()实现.冒泡法是运用遍历数组进行比 ...
随机推荐
- 社区发现(Community Detection)算法
作者: peghoty 出处: http://blog.csdn.net/peghoty/article/details/9286905 社区发现(Community Detection)算法用来发现 ...
- java通过反射获取bean字段注解@Column中的信息
直接上代码吧: Field field; Field[] fields=clas.getDeclaredFields(); for (int i = 0; i <fields.length ; ...
- yum安装nginx详解
原文:http://blog.csdn.net/tjcyjd/article/details/50686505 1.查看yum的nginx信息 # yum info nginx Loaded plug ...
- [Testing] Config jest to test Javascript Application -- Part 3
Run Jest Watch Mode by default locally with is-ci-cli In CI, we don’t want to start the tests in wat ...
- 浅谈xss原理
近日,论坛上面XSS满天飞,各处都能够见到XSS的痕迹,前段时间论坛上面也出现了XSS的迹象.然后我等小菜不是太懂啊,怎么办?没办法仅仅有求助度娘跟谷歌这对情侣了. 能够说小菜也算懂了一些.不敢藏私, ...
- oracle 11G direct path read 非常美也非常伤人
direct path read 在11g中,全表扫描可能使用direct path read方式,绕过buffer cache,这种全表扫描就是物理读了. 在10g中,都是通过gc buffer来读 ...
- saltstack安装配置(syndic)
syndic是saltstack用来做集群部署的,一般结构如图: syndic是一个特殊的minion,syndic类继承于minion类,syndic可以看作一个代理,只做数据传递. CentOS上 ...
- @SuppressWarnings 用法
从Java 5.0起,您可以使用java.lang.SuppressWarning注释,来停用与编译单元子集相关的编译警告 作用:用于抑制编译器产生警告信息. Idea 设置泛型检查,变量.方法未使用 ...
- openwrt procd 运行的一些log
void procd_inittab(void) { #define LINE_LEN 128 FILE *fp = fopen(tab, "r"); struct init_ac ...
- linux 输入子系统(4) intput_dev 接口描述
Name struct input_dev - represents an input device Synopsis struct input_dev { const char * name; // ...