数组方法、去重、冒泡、选择、反转、扁平化数组

some 数组中是否有满足条件的 返回布尔值,如果遇到一个满足条件的,就会直接跳出

 var arr=[1,2,3,4,5,6,7];
        var bool=arr.some(function(item,index,arr){
            return item>4;//判断每个元素是不是有大于4的
        });
        console.log(bool);

ever 数组中是否所有元素都满足条件,返回布尔值,如果遇到一个不满足条件的,就会直接退出

filter 筛选数组中满足条件的元素,返回满足条件元素组成的数组

find 在数组中找到满足条件的第一个元素,返回,并且不在继续向后循环

 var o=arr.find(function(item){
            return item.id===1003;
        })
        console.log(o);

reduce 归并

 // reduce return结果会传递给下一次遍历时的value,遍历完成后返回最终value值


        //****不用理解,会用
        var sum=arr.reduce(function(value,item,index,arr){
console.log(value,item,index,arr);
 return value;
})
    console.log(sum)

// 如果有reduce的初始值,value开始就是这个初始值,并且item会从第0项开始遍历
        var sum=arr.reduce(function(value,item,index){
            console.log(value,item,index);
            return value+item;
        },100);
        console.log(sum)

Array 的静态方法

//判断给入的内容是不是数组
Array.isArray(arr);//静态方法
数组用typeof判断是object只能用Array.isArray()来判断
arr.push实例化方法
arr.constructor===Array
判断这个变量的构造函数是不是Array
iterable迭代器
Array.from(divs) 
ES6
HTMLCollection
arguments
NodeList
Set
Map
将迭代器对象转换为数组
ES5使用  将迭代器对象转换为数组
var arr=Array.prototype.slice.call(divs);
    //   var arr=Array.prototype.concat.apply([],divs);
    //   console.log(arr)

fill 填充数组

arr.fill(值,从什么时候开始填充,到什么下标之前结束)

var arr=Array(10);
        // arr.fill(1,5);
        填充1,从第二个开始,填充到第六个
        arr.fill(1,2,6)
        console.log(arr)

**Math.random ** 随机数

console.log(Math.random())//0-1
不包括0也不包括1


生成随机颜色
var div=document.getElementById("div1");
        div.onclick=function(){
             div.style.backgroundColor=Array(6).fill(1).reduce(function(value,item){
               return value+parseInt(Math.random()*16).toString(16);
            },"#")
        }

reverse 反转数组 改变原数组,并且返回这个原数组

arr.reverse();
//案例
var arr=[2,4,6,8,0,1,3,5,7];
        arr.reverse();
        console.log(arr)
 //  数组反转
        var len=parseInt(arr.length/2);
        for(var i=0;i<len;i++){
            var temp=arr[i];
            arr[i]=arr[arr.length-1-i];
            arr[arr.length-1-i]=temp;
        }
        console.log(arr);

扁平数组

// 扁平化数组
        var arr1=arr.flatMap(function(item){
            return item;
        });
        console.log(arr1);
扁平化数组
     var arr=[[1,2,3],[4,5,6],7,8,9,[[11,12],[13,14],15]];

        function flat(arr,target){
                if(!target){
                    target=[];
                }
                for(var i=0;i<arr.length;i++){
                    if(Array.isArray(arr[i])){
                        flat(arr[i],target)
                    }else{
                        target.push(arr[i]);
                    }
                }
                return target;
        }

          var arr1=flat(arr);
          console.log(arr1);

去重

        var arr=[1,2,2,3,4,4,5,6,5,6,7,8,9];
       var arr1=arr.reduce(function(v,t){
            if(v.indexOf(t)<0) v.push(t);
            return v;
        },[])
        console.log(arr1,arr);
// 数组去重的几种方法
       //第一种
var arr=[1,2,3,3,2,4,5,6,7];
for(var i=0;i<arr.length;i++){
    for(var j=i+1;j<arr.length;){
        if(arr[i]===arr[j]){
            arr.splice(j,1);
            continue;
        }
        j++;
    }
}
console.log(arr);


//第二种
var arr=[1,2,3,3,2,4,5,6,7];
var arr1=[];
for(var i=0;i<arr.length;i++){
    var bool=false;
    for(var j=0;j<arr1.length;j++){
        if(arr[j]===arr[i]){
            bool=true;
            break;

        }
    }
    if(!bool){
        arr1.push(arr[i]);
    }
}
console.log(arr1);



//第三种
var arr=[8,1,2,3,3,2,4,5,6,7,8];
var arr1=arr.reduce(function(v,t){
        if(v.indexOf(t)<0) v.push(t);
        return v;
},[])
console.log(arr1);
                           
                           
                           
//第四种
var arr=[8,1,2,3,3,2,4,5,6,7,8];
var arr1=[];
for(var i=0;i<arr.length;i++){
    if(arr1.indexOf(arr[i])<0){
        arr1.push(arr[i]);
    }
}
console.log(arr1);
                                
 
                                
//第五种
  var arr=[1,2,3,3,2,4,5,6,7];
  var arr1=[];
  for(var i=0;i<arr.length;i++){
      if(!arr1.includesa(arr[i])){
          arr1.push(arr[i]);
      }
  }
  console.log(arr1);

排序

sort 数组的排序

arr.sort()

    arr.sort(function(a,b){
             return a-b;//从小到大排序
             return b-a;//从大到小排序
        })
        console.log(arr);
          var arr=[
            {id:1001,name:"计算机1",price:1200,num:1},
            {id:1002,name:"计算机2",price:3200,num:1},
            {id:1003,name:"计算机3",price:6800,num:1},
            {id:1004,name:"计算机4",price:7200,num:1},
            {id:1005,name:"计算机5",price:13000,num:1},
        ]


        arr.sort(function(a,b){
            return b.price-a.price;
        })
        console.log(arr)

冒泡排序

var arr = [1, 4, 5, 3, 2, 11, 15, 6, 7, 9, 1, 12, 3, 1, 22, 8, 9];
        // 算法
        // 冒泡排序
        for (var j = 0; j < arr.length-1; j++) {
            for (var i = 0; i < arr.length-j-1; i++) {
                if (arr[i] > arr[i + 1]) {
                    var temp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = temp;
                }
            }
        }
        console.log(arr)

选择排序

// 选择排序
         var arr = [4,1, 5, 3, 2, 11, 15, 6, 7, 9, 1, 12, 3, 1, 22, 8, 9];
        for(var i=0;i<arr.length;i++){
            var min=i;
            for(var j=i+1;j<arr.length;j++){
                if(arr[min]>arr[j]){
                    min=j;
                }
            }
           if(i!==min){
                var temp=arr[i];
                arr[i]=arr[min];
                arr[min]=temp;
           }
        }
        console.log(arr);
posted @ 2021-12-16 09:17  满天星可以嘛  阅读(52)  评论(0编辑  收藏  举报