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 ...
随机推荐
- jquery 根据后台传递过来的三维数组动态生成三级菜单
根据后台传递过来的三维数组动态生成三级菜单 <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- Spring Cloud常用组件及各组件版本对应关系图
Spring Cloud常用组件: 架构图: 版本对应关系:
- quartz2.3.0(二)触发器Trigger花式Scheduler调度job
任务类 package org.quartz.examples.example2; import java.util.Date; import org.slf4j.Logger; import org ...
- 概率及期望DP小结
资源分享 26 个比较概率大小的问题 数论小白都能看懂的数学期望讲解 概念 \(PS\):不需要知道太多概念,能拿来用就行了. 定义 样本(\(\omega\)):一次随机试验产生的一个结果. 样本空 ...
- [LOJ#3120][Luogu5401][CTS2019]珍珠(容斥+生成函数)
https://www.luogu.org/blog/user50971/solution-p5401 #include<cstdio> #include<algorithm> ...
- LOJ3146 APIO2019路灯(cdq分治+树状数组)
每个时刻都形成若干段满足段内任意两点可达.将其视为若干正方形.则查询相当于求历史上某点被正方形包含的时刻数量.并且注意到每个时刻只有O(1)个正方形出现或消失,那么求出每个矩形的出现时间和消失时间,就 ...
- Flutter Image(图片)
Image是一个用于展示图片的组件.支持 JPEG.PNG.GIF.Animated GIF.WebP.Animated WebP.BMP 和 WBMP 等格式. Image 有许多的静态函数: ne ...
- AppRTC服务搭建(测试)
提供一个在线的webrtc服务器测试,需要的朋友看看.https://www.webrtcserver.cn/ 服务器搭建环境各有不同在此参考前人经验差试一下. 运行AppRTC需要使用Google ...
- Jmeter学习笔记(十一)——定时器
默认情况下,Jmeter线程在发送请求之间没有间歇.不设置定时器,短时间内会产生大量访问请求,导致服务器被请求淹没,利用Jmeter进行压测时,一般会和定时器一起,控制请求的吞吐量和并发数. 一.定时 ...
- 经典数据结构与算法在经典软件(linux kernel)中的应用
参考文章:Core Alorgithms deployed linux中的priority search tree数据结构研究 虚拟内存: 1.红黑树,管理与进程关联的vm_area_struct实例 ...