JS数组去重整理合集
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数组去重整理合集的更多相关文章
- js 数组去重复的方法
数组去重复是js中常用的方法,归纳了四种如下: 1. for + indexOf 去重复 var arr = [3,5,5,4,1,1,2,3,7,2,5]; var target = []; fo ...
- JS 数组去重复值
var arr1 = [90, 91, 92]; var arr2 = [80, 81]; var arr3 = [80, 71, 72, 73]; var arr = arr1.concat(50, ...
- Js数组去重复取唯一值
function isBigEnough(element) { return element >= 10; } var filtered = [12, 5, 8, 130, 44].filter ...
- js 数组去重复键
Array.prototype.deleteEle = function() { var newArr = this; for (var i = newArr.length - 1; i >= ...
- 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 ...
- js 数组去重复
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js数组和字符串去重复几种方法
js数组去重复几种方法 第一种:也是最笨的吧. Array.prototype.unique1 = function () { var r = new Array(); label:for(var i ...
- 11、js 数组详细操作方法及解析合集
js 数组详细操作方法及解析合集 前言 在开发中,数组的使用场景非常多,平日中也涉及到很多数组的api/相关操作,一直也没有对这块内容进行一块整理总结,很多时候就算用过几次这个api,在开发中也很容易 ...
- post/get in console of JSarray/js 数组详细操作方法及解析合集
https://juejin.im/post/5b0903b26fb9a07a9d70c7e0[ js 数组详细操作方法及解析合集 js array and for each https://blog ...
随机推荐
- c++基础(三)——容器
1. 顺序容器 vector和string将元素保存在连续的内存空间中.由于元素是连续存储的,由元素的下标来计算其地址是非常快速的.但是在这两种容器的中间位置添加或删除元素就非常耗时 list和for ...
- 跨域和CORS
一 跨域 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之上的 ...
- Django中的admin
1.基本知识 在用Django框架写了一个网站之后,我们添加数据大概有两种方式: 1.在连接的数据库中添加数据 2.登录admin,进入后台添加数据 创建一个Django项目后,我们在url.py中会 ...
- AS3中 is,as,typeof的区别
AS3中 is,as,typeof的区别 . var my_num:Number=9;trace(typeof my_num);var my_object:Array=["语文", ...
- SQL Server 索引优化-----数据库引擎优化顾问
本文将根据“数据库引擎优化顾问”(DTA)来发现无用或缺失的索引. 要使用“数据库引擎优化顾问”,首先需要对数据库负载进行监控,为数据库负载分析准备数据.从SSMS的工具中,打开SQL Server ...
- IDEA使用@Data注解,类调用get、set方法标红的解决办法
1.在setting中,下载lombok插件,安装完成后重启idea
- Spring AOP创建Throwdvice实例
1.异常发生的时候,通知某个服务对象做处理 2.实现throwsAdvice接口 接口实现: public interface IHello { public void sayHello(String ...
- WebSocket 转
即时通信常用手段 1.第三方平台 谷歌.腾讯 环信等多如牛毛,其中谷歌即时通信是免费的,但免费就是免费的并不好用.其他的一些第三方一般收费的,使用要则限流(1s/限制x条消息)要么则限制用户数. 但稳 ...
- Java隐式类型转换和强制类型转换
一.强制类型转换 char 和 整型之间的类型转换 char a7 = 'a'; System.out.println(a7); System.out.println( (int)a7 ); Syst ...
- 设置body样式问题
如果我给body设置成一个宽高为200px的正方形,背景为红色,但是整个html也变成了红色,而且是整个浏览器屏幕都是红的,怎么来处理,如下 给html单独设置一个背景颜色,比如为白色#fff,在给b ...