JS數據結構——Array數組


數組Array

創建:

1.使用方括號[ ]進行創建和初始化

var arr=[]   //創建一個空數組
var arr=[1,2,3]   //創建一個包含數字的數組

2.使用Array構造函數

var arr=new Array()   //創建空數組
var arr=new Array(1,2,3)   //創建包含數字的數組
var arr=new Array(10)   //創建長度為10的數組

3.判斷是否為數組Array.isArray(arr)

var arr=[1,2,3];
Array.isArray(arr)   //true

 

存取函數

不會產生新數組:

1.查找元素indexOf()、lastIndexOf()

var arr=[1,2,3,4,1];
arr.indexOf(1)   //0
arr.lastIndexOf(1)   //4

2.數組轉字符串join()、toString()

var arr=["a ","b","c"]
arr.join();   //a,b,c
arr.toString()   //a,b,c

不帶逗號的連接:join("")

var arr=['a','b','c'];
arr.join("")   //abc

會產生新數組

1.連接arr1.concat(arr2)

var arr1=[1,2,3];
var arr2=[4,5,6];
arr1.concat(arr2);   //[1,2,3,4,5,6]
arr2.concat(arr1);   //[4,5,6,1,2,3]

2.截取splice(index,length)

var arr=[1,2,3,4,5,6];
var part=arr.splice(3,3);   //[4,5,6]

 

可變函數

1.添加元素push()、unshift()

var arr=[1,2,3];
arr.push(4);   //[1,2,3,4]
arr.push(['a','b','c'])   //[1,2,3,4,['a','b','c']]
arr.unshift(0);   //[0,1,2,3]
arr.unshift(['a','b','c'])   //[['a','b','c'],1,2,3]

2.刪除元素pop()、shift()

var arr=[1,2,3];
var back=arr.pop();   //3
var pre=arr.shift();   //1

3.替換元素splice(index,length,new_arr)

var arr=[1,2,3];
var arr1=arr.splice(0,1,'a');   //['a',2,3],arr1=[1]

4.反序reverse()

var arr=[1,2,3];
arr.reverse();   //[3,2,1]

5.排序sort(),按字典順序對元素進行排序

var arr=[3,2,4,8,1];
arr.sort();   //[1, 2, 3, 4, 8]

默認按照從大到小的順序進行排列,可添加排列函數

function cmp(a,b){
    return b-a;
}
var arr=[3,2,4,8,1];
arr.sort(cmp);   //[[8, 4, 3, 2, 1]]

 

迭代器方法

不產生新數組

1.forEach(fn)對數組的每個元素執行fn

var arr=[1,2,3];
arr.forEach(function(i){console.log(i*i)});   //1 4 9

2.every(fn),數組的每個元素均使得fn返回true,則every返回true

var arr=[2,4,6,8];
arr.every(function(i){return i%2==0;})   //true

3.some(fn),數組中存在元素使得fn返回true

var arr=[1,2,3,5];
arr.some(function(i){return i%2==0;})   //true

4.reduce(fn),對數組中的元素進行累計fn運算

var arr=[1,2,3];
var sum=arr.reduce(function(res,cur){return res+=cur;},0)   //6,對數組元素求和

var s=['a','b','c'];
var str=s.reduce(function(res,cur){return res+=cur;},'')   //abc,連接字符串

5.reduceRight(fn),反向數組累計fn運算

var s=['a','b','c'];
var str=s.reduceRight(function(res,cur){return res+=cur;},'')   //cba,反向連接字符串

生成新數組

1.arr.map(fn),對數組元素執行fn,並返回結果數組

var arr=[1,2,3];
var new_arr=arr.map(function(i){return i*i})   //[1,4,9]

2.arr.filter(fn),數組過濾,返回包含使得fn為true的元素的數組

var arr=[1,2,3,4,5,6];
var new_arr=arr.filter(function(i){return i%2==0;})   //[2,4,6]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM