1.基本:
push/pop/shift/unshift
push向末尾添加一個或多個值,將要傳的值作為參數傳遞,eg:arr.push(2,3)
pop向末尾移除一個值,
shift刪除首部的一個值,
unshift向首部添加一個或多個值(傳參數)
以上方法都是直接修改原數組,添加的方法返回值為新數組長度,刪除的方法返回值為刪除的元素
2:進階
splice:
直接修改原數組,可以傳三個參數,可實現刪除增加替換的功能
slice:
不影響原數組,傳兩個參數,開始位置索引,結束位置索引,截取返回一個新數組(不包含介紹索引元素),也可傳一個參數,傳正數就從該索引往后截取全部,傳負數截取后面元素(-1截取一個-2截取2個),傳一正一負截取開始位置到去除負數所指的元素之前
split:
不影響原字符串,將字符串截取為數組返回,傳參數可制定以某字符截取,截取后每個元素為字符串形式
concat:
不影響原數組,合並數組,返回合並后的新數組
join:
不影響原數組,將數組轉為字符串返回,默認以‘,’隔開,可以傳參制定隔開符
reverse:
反轉數組,直接修改原數組,返回值也是反轉后的數組
sort:
排序,直接修改原數組,可以傳個比較函數(a,b)=>a-b升序,b-a降序
indexOf/lastindexof和index相反
接受的參數為數值
返回數組中第一個與參數相等的元素的索引,沒有滿足條件的返回-1
3.高級:
find:
找出滿足條件的第一個元素,並返回,沒找到返回undefined
findIndex:
var arr=[3,4,5,6,7,8,9]
var res=arr.findIndex(function (item,index) {
return item==4
})
console.log(res);//1
進行循環遍歷返回第一個滿足條件的元素的索引
以上兩個方法(第一個參數為callback)都可以接受第二個參數,用來綁定回調函數的this對象。
function f(v){ return v > this.age; } let person = {name: 'John', age: 20}; [10, 12, 26, 15].find(f, person); // 26
includes:
方法返回一個布爾值,表示某個數組是否包含給定的值。可以傳兩個參數,第二個可傳可不傳,第二個參數表示開始搜索的索引
map:
不影響原數組,對元素進行加工后返回到一個新數組中
var arr=[7,6,5,4,2,4,9] var a=arr.map((item,index)=>{ return item=item+5 }) console.log(arr);[ 7, 6, 5, 4, 2, 4, 9 ] console.log(a);[ 12, 11, 10, 9, 7, 9, 14 ]
reduce:
不影響原數組,對元素進行累加
filter:
不影響原數組,對數組進行過濾,返回滿足條件的元素的新數組
some/every:
some:傳入一個回調,如果有任意一個元素滿足條件則返回true,否則false
every:必須每個元素都滿足條件才返回true
遍歷數組的方法:entries()
、values()
、keys()
這三個方法都是返回一個遍歷器對象,可用for...of
循環遍歷,唯一區別:keys()
是對鍵名的遍歷、values()
對鍵值的遍歷、entries()
是對鍵值對的遍歷
for(let item of ['a','b'].keys()){ consloe.log(item); //0 //1 } for(let item of ['a','b'].values()){ consloe.log(item); //'a' //'b' } let arr4 = [0,1]; for(let item of arr4.entries()){ console.log(item); // [0, 0] // [1, 1] } for(let [index,item] of arr4.entries()){ console.log(index+':'+item); //0:0 //1:1 }
Array.from
將類數組對象(即有length屬性的對象)和可遍歷對象轉為真正的數組。
比如,使用·Array.from()·方法,可以輕松將·JSON·數組格式轉為數組。
let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3 }; let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']
Array.of
Array.of()
方法是將一組值轉變為數組
let arr0 = Array.of(1,2,33,5); console.log(arr0);//[1,2,33,5] let arr1 = Array.of('你好','hello'); console.log(arr1);//["你好", "hello"]