數組的常見操作方法

數組的常見操作

let arr = [1,4,5,7,9];

 

1. 判斷數組中某個元素是否存在  

 para1:待判斷的元素

 返回值:元素在數組中的索引,如果不存在,返回-1

 let isExist = arr.indexOf(4) !=-1;

2、向數組中追加元素

 para1:要追加的元素

 返回值是數組的長度;

arr.push(100);

 

 3、在數組的開頭添加元素

 para1:待添加的元素

返回值是數組的長度

場景:下拉刷新

arr.unshift(-2);

 

 4、刪除數組結尾的元素

 無參數

 返回值是刪除的元素

let e= arr.pop();

console.log(e);//100

 

5、刪除數組開頭的元素

返回值是刪除的元素

arr.shift();

 

6、從數組中刪除一些元素,插入一些元素;

 para1:開始索引

para2:刪除元素的數目(開始索引是刪除的起始位置)

para3...:要插入的元素(開始索引也就是插入的位置,可以插入多個)

 場景:用新元素替換舊數組的一個元素

返回值是被刪除的元素構成的數組;

console.log(arr)

let de= arr.splice(1,2,1000,200);

 可以刪可以加

 

 7、獲取一個子數組

para1:開始位置;包含開始

para2:結束位置;不包含結束 [start,end);

返回值是子數組;

let s= arr.slice(1,3);

console.log(s);

 

 8、數組的拼接

console.log(arr);

let arr2=[-1,-2,90];

para1.....:待拼接的數組(可以拼接多個)

返回值拼接之後的新數組;(arr)原數組不受影響

let c= arr.concat(arr2);

console.log(c);

console.log(arr);

弱類型語言可以多個參數,強類型的參數是固定的

 9、數組的遍歷

參數: 元素,索引,所在的數組

para1:操作函數

       para1:元素

        para2:索引

        para3:元素所在的數組

arr.forEach((item,index,array)=>{

    console.log(item)

    console.log(index)

    console.log(array)

    // 想要進行的操作:無明確要求

})

 

10、數組的映射

para1:操作函數

         para1:元素

         para2:索引

         para3:元素所在的數組

         返回值是該元素映射的新元素(一一對應)

 返回值是映射得到的新數組
 

let m= arr.map((item,index,array)=>{

    return item*3;

})

console.log(m);



let stus = [

    {name:'lucy',age:20},

    {name:'lily',age:21},

    {name:'小蘭',age:20},

]

let stuNames = stus.map((item)=>{

    return item.name;

})

console.log(stuNames);

 11、數組的聚合

 para1:操作函數

         para1:舊值;上一次聚合的結果;

         para2:當前元素

         para3:當前元素的索引

         para4:當前元素所在的數組

         返回值:該次聚合的結果

 para2:聚合時使用的初值(0加,1乘)

 返回值是 聚合後的數據

let rd=arr.reduce((preValue,curValue,curIndex,array)=>{

    console.log('1111111111111');

    // console.log(preValue);

    // console.log(curValue);

    console.log(curIndex);

    // console.log(array);

    return preValue+curValue;

},0)

console.log(rd);



// [1,10000,200,7,9]

// 初值:0 

// 第一次    0     1    0      1 

// 第二次    1    10000  1     10001

// 第三次  10001  200    2    10201

// 第四次  10201  7      3     10208

// 第五次  10208  9      4     10217 

// 返回值是 10217



// 計算每個字母出現的頻率

let str ='fsadfasdfagagajkgnahjgasdjfajsfjk';

let strArr=str.split('');

console.log(strArr);

let sr=strArr.reduce((preValue,curValue,curIndex,array)=>{

    if(!preValue[curValue]){

        preValue[curValue]=0;

    }

    preValue[curValue] +=1;

    console.log(preValue);

    return preValue;

},{})

console.log(sr);

 

12、數組過濾

 para1:操作函數

         para1:元素

         para2:索引

         para3:元素所在的數組

         返回值 true/false ; true:滿足條件;false:不滿足條件

返回值是 滿足過濾條件的新數組

let fa = arr.filter((item,index,array)=>{

    return item%2==0;

})

console.log(fa);

 

13、數組排序

 para1:操作函數

     para1:數組中一個元素

     para2:數組中另一個元素

     返回值是true/false;

 返回值排序後的新數組

let sortedArr=arr.sort((num1,num2)=>{

    return num1>num2;//升序

    // return num1<num2;//降序

});

console.log(sortedArr);



let goods=[

    {name:"裙子",price:37,sales:10000},

    {name:'裙子',price:100,sales:100},

    {name:'裙子',price:340,sales:102},

    {name:'裙子',price:734,sales:16},

    {name:'裙子',price:1235,sales:10},

    {name:'裙子',price:3214,sales:6},

    {name:'裙子',price:777,sales:60},

]

let sortedGoods=goods.sort((obj1,obj2)=>{

    console.log(obj1.price);

    return obj1.price<obj2.price;

})

console.log(sortedGoods);

14、判斷一個變量是不是數組

 返回值是true或者false

let a=1;

// let a=[1,2];

console.log(Array.isArray(a)); //Array是一個類

console.log(a instanceof Array);//instanceof 關鍵字

 

 數組中最大的元素

let arrt1=[1,5,6,43,99,42,3];

// 第一種方法。數組中不能有重複元素,推薦第二種

let sor1=arrt1.sort((num,num3)=>{

    return num>num3

})

console.log(sor1);

sort=sor1[0];

sort2=sor1[sor1.length-1];

console.log(sort);

console.log(sort2);



// 第二種方法

let num4;

let str1=arrt1.forEach((item)=>{

    num4=num4>item ? num4 : item

    return num4

})

console.log(num4)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章