1.利用splice

 var arr = [1,2,3,4,5,6,7,8,9,9,8,7,6,5,4,3,2,1];

         function repeat(arr){
for(var i = 0;i<arr.length;i++){
for(var j = i+1;j<arr.length;j++){
if(arr[i] == arr[j]){
arr.splice(j,1);
j--;
}
}
}
return arr
}
console.log(repeat(arr));
//[1, 2, 3, 4, 5, 6, 7, 8, 9]

2.利用reduce

         var arr = [1,2,3,4,5,6,7,8,9,9,8,7,6,5,4,3,2,1]
var newArr = arr.reduce((prev, cur) => {
      prev.indexOf(cur) === -1 && prev.push(cur);
        return prev;
    }, []);
console.log(newArr);
//[1, 2, 3, 4, 5, 6, 7, 8, 9]

3.利用Set

         function repeat(newarr){
var s = new Set(arr);
var a = [];
for(var i of s){
a.push(i)
}
return a;
}
var a = repeat(arr)
console.log(a)
//[1, 2, 3, 4, 5, 6, 7, 8, 9]

4.利用indexOf

         function repeat(newarr){
var array = [];
for(var i=0;i < newarr.length;i++){
if(array.indexOf(newarr[i]) === -1){
array.push(newarr[i])
}
}
return array;
}
console.log(repeat(arr))
//[1, 2, 3, 4, 5, 6, 7, 8, 9]

5.利用includes

         function repeat(newarr) {
var array =[];
for(var i = 0; i < newarr.length; i++) {
if( !array.includes( newarr[i]) ) {
array.push(newarr[i]);
}
}
return array;
}
console.log(repeat(arr));
//[1, 2, 3, 4, 5, 6, 7, 8, 9]

6.利用filter

         function repeat(newarr) {
return newarr.filter((item, index, arr)=> {
return newarr.indexOf(item, 0) === index;
});
}
console.log(repeat(arr));
//[1, 2, 3, 4, 5, 6, 7, 8, 9]

7.利用封装函数(逻辑简单)

  function has(arr, n) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] == n) {
return true; //如果在里面则返回true;
}
}
return false;      //否则返回false;
} function norepeat(myArr) {
var newArr = [];            //定义一个空数组,存放符合条件的值;
for (var j = 0; j < myArr.length; j++) {
if (!has(newArr, myArr[j])) {  //利用封装好的函数has判断空数组中是否存在当前的值;
newArr.push(myArr[j]);    //如果空数组中没有,那么则push进空数组;
}
}
return newArr;
}
console.log(norepeat(arr))
//[1, 2, 3, 4, 5, 6, 7, 8, 9]

JS数组去重整理合集的更多相关文章

  1. js 数组去重复的方法

    数组去重复是js中常用的方法,归纳了四种如下: 1. for + indexOf  去重复 var arr = [3,5,5,4,1,1,2,3,7,2,5]; var target = []; fo ...

  2. JS 数组去重复值

    var arr1 = [90, 91, 92]; var arr2 = [80, 81]; var arr3 = [80, 71, 72, 73]; var arr = arr1.concat(50, ...

  3. Js数组去重复取唯一值

    function isBigEnough(element) { return element >= 10; } var filtered = [12, 5, 8, 130, 44].filter ...

  4. js 数组去重复键

    Array.prototype.deleteEle = function() { var newArr = this; for (var i = newArr.length - 1; i >= ...

  5. js 数组去重复两种方法一看就懂

    var arr=[1,1,2,2,3,5,2];function uniqueArr(arr){ var data=[]; for(var i=0;i<arr.length;i++){ if(d ...

  6. js 数组去重复

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. js数组和字符串去重复几种方法

    js数组去重复几种方法 第一种:也是最笨的吧. Array.prototype.unique1 = function () { var r = new Array(); label:for(var i ...

  8. 11、js 数组详细操作方法及解析合集

    js 数组详细操作方法及解析合集 前言 在开发中,数组的使用场景非常多,平日中也涉及到很多数组的api/相关操作,一直也没有对这块内容进行一块整理总结,很多时候就算用过几次这个api,在开发中也很容易 ...

  9. post/get in console of JSarray/js 数组详细操作方法及解析合集

    https://juejin.im/post/5b0903b26fb9a07a9d70c7e0[ js 数组详细操作方法及解析合集 js array and for each https://blog ...

随机推荐

  1. 【C++札记】标准输入与输出

    概述 C语言中使用函数scanf和printf作为标准输入和输出,在C++中引入了类cin和cout进行标准输入和输出,所需头文件为<iostream>,命名空间是std.这里所说的标准输 ...

  2. Dubbo学习摘录(零)

    节点角色说明: Provider:暴露服务的服务提供方: Consumer:调用远程服务的服务消费方: Registry:服务注册与发现的注册中心: Monitor: 统计服务的调用次数和调用时间: ...

  3. Spring Cloud Alibaba学习笔记(20) - Spring Cloud Gateway 内置的全局过滤器

    参考:https://cloud.spring.io/spring-cloud-static/Greenwich.SR2/single/spring-cloud.html#_global_filter ...

  4. Description Resource Path Location Type Unknown Unknown Unknown org.eclipse.core.internal.resources.Marker is not of a displayable type

    是访问限制报错. 方法一: 全局属性Project>preferences>java>Compiler>Errors/Warnings>把右侧的[Deprecated a ...

  5. node.js开发 1-概述

    https://www.cnblogs.com/gaoya666/p/9071288.html Nodejs英文网:https://nodejs.org/en/ 中文网:http://nodejs.c ...

  6. apache-httpd代理请求,selinux造成503问题的解决方法

    NameVirtualHost *:80 <VirtualHost *:80> ServerName test.baidu.com ProxyPreserveHost on ProxyPa ...

  7. element-ui 穿梭框使用axios数据查询

    //class="input"样式自写,用来覆盖穿梭框自带的搜索,它自带的搜索框不能搜索外部数据,只能查询在穿梭框内的数据 <div style="text-ali ...

  8. uboot使用脚本

    使用mkimage命令 # mkimage -A ARM -O linux -T script -C none -n "script" -d *.sh *.img # tftp x ...

  9. Unity3D如何接入第三方的SDK - iOS篇

    来源:http://blog.csdn.net/smlisi2/article/details/8786485 授人以鱼,不如授人以渔”,以UNITY3D调用iOS版的91SDK为例,利用C# / C ...

  10. Ane技术大全 - Devil程序员

    来源:http://www.th7.cn/Program/Android/201405/206863.shtml 一.Ane概况 1.Ane是什么? Ane是为了解决 as3(flash)与Java代 ...