JS:数组扁平化、去重、排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS:数组扁平化、去重、排序相关的知识,希望对你有一定的参考价值。
参考技术A 1、扁平化方法一(toString)注意:如果arr数组中有空数组,不使用此方法,用下面的方法;同时得到数组的值是字符串,不是数字。
2、扁平化方法二(正则表达式)
3、扁平化方法三(遍历数组)
2、利用indexOf去重
3、利用includes
4、利用filter
1、 排序方法一:(sort方法)
2、排序方法二:(冒泡排序)
参考文件: https://blog.csdn.net/qq_42957741/article/details/103859601
参考文件: https://blog.csdn.net/qq_27626333/article/details/77966760
数组的深复制扁平化排序及去重相关方法
// 数组的深复制 // concat var arr = [1, 2, 3, 4, 5]; var arr1 = arr.concat(); arr[0] = 100; console.log(arr) console.log(arr1) // slice var arr = [1, 2, 3, 4, 5]; var arr1 = arr.slice(0); arr[0] = 100; console.log(arr) console.log(arr1) //ES6扩展运算符 var arr = [1, 2, 3, 4, 5]; var arr1 = [...arr] arr[0] = 100; console.log(arr) console.log(arr1) //for循环 var arr = [1, [10,20], 3, 4, 5]; var arr1 = [] for(var i=0;i<arr.length;i++){ arr1.push(arr[i]) } arr[0]=100; console.log(arr) console.log(arr1) // JSON转换 var arr = [1, [10,20], 3, 4, 5]; var arr1=JSON.parse(JSON.stringify(arr)); arr[1][1]=100; console.log(arr) console.log(arr1) // 数组扁平化 var arr=[1,2,3,[10,20,[100,200,300]]] var arr1=[] function arrFlat(arr){ for(var i=0;i<arr.length;i++){ if(!arr[i].length){ arr1.push(arr[i]) }else{ arrFlat(arr[i]) } } } arrFlat(arr) console.log(arr); console.log(arr1); // 数组去重--indexOf var arr=[1,2,3,4,3,2,1,5,6]; var arr1=[] for(var i=0;i<arr.length;i++){ if(arr1.indexOf(arr[i])<0){ arr1.push(arr[i]); } } console.log(arr); console.log(arr1); // 双重循环 var arr=[1,2,3,4,3,2,1,5,6]; var arr1=[]; for(var i=0;i<arr.length;i++){ var bool=true; for(var j=0;j<arr1.length;j++){ if(arr1[j]==arr[i]){ bool=false; } } if(bool){ arr1.push(arr[i]); } } console.log(arr) console.log(arr1) // 使用deleta实现 var arr=[1,2,3,4,3,2,1,5,6]; var arr1=[]; for(var i=0;i<arr.length;i++){ if(arr.indexOf(arr[i],i+1)>-1){ delete arr[i] } } for(var item in arr){ arr1.push(arr[item]) } console.log(arr) console.log(arr1) // 数组排序sort(a-b为小到大,反之大到小) var arr=[1,2,6,13,4,3,11,22,5]; arr.sort((a,b)=>{ return a-b }) console.log(arr); // 选择排序 var arr=[1,2,10,6,12,33,5,3,4]; for(var i=0;i<arr.length;i++){ var checkVal=‘‘ for(var j=i+1;j<arr.length;j++){ if(arr[i]>arr[j]){ checkVal=arr[i]; arr[i]=arr[j]; arr[j]=checkVal } } } console.log(arr); // 冒泡排序 var arr=[15,2,1,6,12,33,5,3,4]; for(var i=0;i<arr.length;i++){ var checkVal=‘‘; for(var j=0;j<arr.length;j++){ if(arr[j]>arr[j+1]){ checkVal=arr[j]; arr[j]=arr[j+1]; arr[j+1]=checkVal } } } console.log(arr);
以上是关于JS:数组扁平化、去重、排序的主要内容,如果未能解决你的问题,请参考以下文章