數(shù)組的方法

數(shù)組:一些數(shù)據(jù)的集合,每一個數(shù)據(jù)是數(shù)組的元素。
字面量方式定義數(shù)組:var arr[]
不可以用數(shù)組名.鍵的方式訪問屬性,要用[]l來訪問。數(shù)組名[索引]
length屬性,表示數(shù)組的長度,即元素的個數(shù)。數(shù)組最后一個元素的下標是length-1
獲取數(shù)組最后一個元素arr[arr.length-1]
數(shù)組中查找對象用下標,當屬性不存在時,顯示undefined。并且參與數(shù)組長度計算個數(shù)
增改:arr[x下標]=值。如果下標超出了原來的length長度,length會自動發(fā)生改變。(如果開始長度是5,增加時arr[10],長度會自動增加到11)
增刪改查
執(zhí)行后改變原數(shù)組
在結(jié)尾添加:數(shù)組.push(2,3,4),在數(shù)組最后添加2,3,4,并改變長度,返回值是數(shù)組長度
結(jié)尾刪除:pop(),括號內(nèi)不接值,刪除最后一個,并返回刪除的元素
在開頭添加,unshift(,,,),可添加一個或多個元素。返回新數(shù)組的長度
shift()在開頭刪除,刪除第一個,并返回刪除的元素
插入截取
splice(index)從index下標位置開始向后截取,直到結(jié)尾,返回截取的元素組成新數(shù)組,原數(shù)組發(fā)生改變。
當傳入的index下標不存在,返回空數(shù)組,原數(shù)組不改變
傳入的是負數(shù)時,等于從數(shù)組的最后一個往前找,最后一個為-1.依然向后截取
splice(index,num)從index下標開始向后截取num個值,返回這些元素組成的新數(shù)組,原數(shù)組改變
splice(index,num,8,9,2)從index下標位置開始,截取num個元素,截取的這些元素組成一個新數(shù)組返回,并且原數(shù)組從index位置開始插入8,9,2
splice(index,0,8,9,2)從index下標位置開始,不截取只插入,并且原數(shù)組從index位置開始插入8,9,2
將原數(shù)組倒序排列,返回新的數(shù)組,原數(shù)組也改變?yōu)榈剐?。reverse()
執(zhí)行后不改變原數(shù)組
將數(shù)組轉(zhuǎn)換成字符串,不改變原數(shù)組。join()
join()拷貝出來的元素用,隔開
join(“”)拷貝出來的元素連接在一起
slice()
slice()將原數(shù)組拷貝
slice(index)從index下標位置開始向后截取,直到結(jié)尾,返回截取的元素組成新數(shù)組,原數(shù)組不改變。
傳入的是負數(shù)時,等于從數(shù)組的最后一個往前找,最后一個為-1.
slice(startIndex,endIndex)從startIndex下標開始到endIndex下標(不包含)結(jié)束,組成新數(shù)組,原數(shù)組不變
endIndex下標大于startIndex,截取為空
可以是負數(shù),截取
concat([],[])將一個或多個數(shù)組(或元素)合并到原數(shù)組中,原數(shù)組不發(fā)生改變
Array.isArray(),判斷傳入的參數(shù)是不是數(shù)組
遍歷數(shù)組:
for(var i=0;i<length;i++){console.log(arr[i])}
可以添加其他屬性,但不會增加長度
得到的下標是數(shù)字
for(vai key in arr){console.log(arr[key])}
添加屬性,長度增加,并且可通過下標獲取
得到的下標是字符串
數(shù)組元素對應(yīng)的鍵是以0開頭的數(shù)字,也是數(shù)組的索引,下標
構(gòu)造函數(shù)方式定義數(shù)組:var arr= new Array()此處()內(nèi)如果是數(shù)字,代表數(shù)組的長度,如果不是數(shù)字,表示聲明了有一個元素為此值的數(shù)組。
數(shù)組排序
冒泡排序
選擇排序
sort()排序
不傳參數(shù)時,轉(zhuǎn)換成字符串,按字符對應(yīng)的ASCII碼值排序
sort()方法進行數(shù)值排序,需要設(shè)置一個參數(shù),這個參數(shù)是一個函數(shù),函數(shù)返回正數(shù),升序,返回負數(shù),降序

   arr.sort(function(a,b){//只能對數(shù)值排序,返回值必須是Number類型
       return a-b升 或 return a-b 降
   })
var arr = [23,8,67,199];
 var newArr=arr.sort(function(a,b){
 return a-b
}
console.log(newArr,arr)
案例:
    隨機排序:
        var arr = [23,8,67,199];
      arr.sort(function(){
            return Math.random()-0.5; //隨機排序
      });
      alert( arr )
    ES5新增數(shù)組方法
        arr.indexOf()
            arr.indexOf(ele);檢測ele在數(shù)組arr中書否存在,存在返回下標,不存在返回-1;
            arr.indexOf(ele,index);從index位置向后查找ele是否在數(shù)組arr中存在,存在返回下標,不存在返回-1
        arr.lastIndexof()
            arr.lastIndexof(ele);檢測ele在數(shù)組arr中是否存在,從后往前查找,存在返回下標,不存在返回-1
            arr.lastIndexof(ele,index),從index下標開始向前查找,找到返回下標,找不到返回-1
        arr.some(function(ele,index,array){
return
})
        arr.every(function(ele,index,array){})
        arr.forEach(function(ele,index,array){}),本質(zhì)上是for循環(huán)
        過濾,循環(huán),var newArr=arr.filter(function(ele,index,array){
}),返回新數(shù)組
            var arr=[1,4,7,0,9,23,12,14]
var newArr=arr.filter(function(ele){
return x>5;
})過濾出數(shù)組arr中大于5的數(shù)字,組成新的數(shù)組

            傳入一個函數(shù),函數(shù)接收一個參數(shù),這個參數(shù)代表的是數(shù)組元素,函數(shù)如果return  true,當前元素返回,否則,元素被過濾掉,不顯示
        映射,循環(huán),var newArr=arr.map(function(ele,index,array){
}),返回新數(shù)組
            var newArr=arr.map(function(ele,){
return ele*ele
}),
把數(shù)組的所有元素都開平方
            傳入一個函數(shù),函數(shù)有三個選填參數(shù),數(shù)組中的元素,元素的索引,循環(huán)的數(shù)組。
        reduce()
            arr.reduce(function(x,y){}),
                1執(zhí)行后歸并為 一個值
//      var result = arr.reduce(function(prev,next,index,array){
//          //第一次循環(huán)運行時prev是數(shù)組arr的第一個元素,next是arr的下一個,index從1開始
//          //下一次循環(huán)運行時prev是上一次回調(diào)函數(shù)執(zhí)行的return結(jié)果
//          console.log(prev,next,index,array);
//          return prev+next;
//      });
//      console.log("result:"+result);//result是最后一次回調(diào)函數(shù)執(zhí)行的return結(jié)果
                2執(zhí)行后歸并為 一個新的數(shù)組
        ```
        var arr = ["tom",19,"110"];
        var brr = ["name","age","phone"];
        var newArr = arr.reduce(function(prev,next,index){
            //index從0開始遍歷
            console.log(prev,next,index);
            var obj = {};
            obj[brr[index]] = next;
            prev.push(obj);
            return prev;
        },[]);
        console.log(newArr);
                3執(zhí)行后歸并為 一個新的對象
        var arr = ["tom",19,"110"];
        var brr = ["name","age","phone"];
        
        var obj = arr.reduce(function(prev,next,index){
            prev[brr[index]] = next;
            return prev;
        },{});
        console.log(obj);
    ``` 


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容