数组的深复制扁平化排序及去重相关方法
Posted alex-song
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组的深复制扁平化排序及去重相关方法相关的知识,希望对你有一定的参考价值。
// 数组的深复制 // 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);
以上是关于数组的深复制扁平化排序及去重相关方法的主要内容,如果未能解决你的问题,请参考以下文章
前端技能树,面试复习第 53 天—— 手写代码:数据处理 | 排序 | 扁平 | 去重 | 解析 | 分隔