前端学习笔记(数组扁平化方法、去重方法、排序方法)

数组扁平化方法

数组扁平化:就是将多维数组变为一维数组。

递归函数

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

let result = [];
let fn = function (ary) {
    for (let i = 0; i < ary.length; i++) {
        let item = ary[i];
        if (arr[i] instanceof Array) {
            fn(item);
        } else {
            result.push(item);
        }
    }
}
fn(arr);
console.log(result)//1,2,3,4,5,6,7,8,9,10,11,12

flat

//arr.flat(Infinity) Infinity为层数,默认为一层
var arr = [1,2,[3,4,5,[6,7,8],9],10,[11,12]];

console.log(arr.flat(2))//1,2,3,4,5,6,7,8,9,10,11,12

toString

该方法得到的是一个字符串数组,如果arr数组中有空数组,不使用此方法

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

var newArr = arr.toString().split(',')
console.log(newArr);//"1","2","3","4","5","6","7","8","9","10","11","12"

数组去重方法

set

var arr = [1,2,2,3,3,3,4,4,4,4];

var newArr = Array.from(new Set(arr))
console.log(newArr);//1,2,3,4

遍历数组

var arr = [1,2,2,3,3,3,4,4,4,4];

var newArr = []
for(var i = 0; i < arr.length; i++) {
    if(newArr.indexOf(arr[i]) === -1) {
        newArr.push(arr[i])
    }
}
console.log(newArr);//1,2,3,4

fileter + indexOf()

//如果数字不是第一次出现则被过滤
var arr = [1,2,2,3,3,3,4,4,4,4];

var newArr = []
function filterArr(array){
	newArr = array.filter((item,index)=>{
		return array.indexOf(item) === index
	})
}
filterArr(arr)
console.log(newArr);//1,2,3,4

数组排序方法

sort

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

var newArr = arr.sort(function(a,b){
    return a - b;
})
console.log(newArr);//1,2,3,4,5,6,7,8,9

冒泡排序

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

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

插入排序

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

function insertSort(array){
   var tmp
   for(var i = 1; i < array.length; i++) {
      tmp  = array[i]
      for(var j = i; j >= 0; j--) {
        if(array[j - 1] > tmp) {
          array[j] = array[j - 1];
        } else {
          array[j] = tmp;
          break;
        }
      }
   }
   return array
}
var newArr = insertSort(arr)
console.log(newArr);//1,2,3,4,5,6,7,8,9
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值