數(shù)組是值的有序集合。
Array.prototype.concat() ?[ES3]
(concat()方法合并兩個(gè)或兩個(gè)以上數(shù)組零远。此方法不更改現(xiàn)有數(shù)組婴谱,而是返回新數(shù)組)
語(yǔ)法:
var new_array = old_array.concat(value1[,value2[, ...[,valueN]]])
實(shí)例:
var arr1=['a','b','c'];
var arr2=['d','e','f'];
var arr3=arr1.concat(arr2);
// arr3 is a new array [ "a", "b", "c", "d", "e", "f" ]
Array.prototype.copyWithin()? [ES6]
(copyWithin方法钾怔,在當(dāng)前數(shù)組內(nèi)部衅檀,將指定位置的成員復(fù)制到其他位置(會(huì)覆蓋原有成員)菇曲,然后返回當(dāng)前數(shù)組神僵。也就是說(shuō)熊经,使用這個(gè)方法,會(huì)修改當(dāng)前數(shù)組译柏。target(必需):從該位置開(kāi)始替換數(shù)據(jù)镣煮。start(可選):從該位置開(kāi)始讀取數(shù)據(jù),默認(rèn)為0鄙麦。如果為負(fù)值典唇,表示倒數(shù)。end(可選):到該位置前停止讀取數(shù)據(jù)胯府,默認(rèn)等于數(shù)組長(zhǎng)度介衔。如果為負(fù)值,表示倒數(shù)骂因。)
( copyWithin()方法是數(shù)組的淺拷貝部分炎咖, 而數(shù)組的大小沒(méi)有改變。)
語(yǔ)法:
arr.copyWithin(target)
arr.copyWithin(target,start)
arr.copyWithin(target,start,end)
實(shí)例:
['alpha','bravo','charlie','delta'].copyWithin(2,0);
// results in ["alpha", "bravo", "alpha", "bravo"]
Array.prototype.entries(). [ES6]
(entries()方法返回一個(gè)新數(shù)組的迭代器對(duì)象包含數(shù)組中的每個(gè)索引的鍵/值對(duì)寒波。)
語(yǔ)法:
a.entries()
實(shí)例:
var a = ['a','b','c'];
var iterator = a.entries();
console.log(iterator.next().value); ?// [0, 'a']
console.log(iterator.next().value); ?// [1, 'b']
console.log(iterator.next().value); ?// [2, 'c']
var a = ['a','b','c'];
var iterator = a.entries();
for(lete of iterator){
? ? console.log(e);
}// [0, 'a']// [1, 'b']// [2, 'c']
Array.prototype.every()??[ES5]
(every方法是數(shù)組的邏輯判定:對(duì)數(shù)組元素應(yīng)用指定對(duì)函數(shù)進(jìn)行判定乘盼,返回true 或 false)
語(yǔ)法:
arr.every(callback[,thisArg])
實(shí)例:
functionisBigEnough(element,index,array){
? ? ? ?return element >= 10;
}
[12,5,8,130,44].every(isBigEnough);// false
[12,54,18,130,44].every(isBigEnough);// true
[1,2,3,4,5,6,7,8].every(function(x){ x < 10; } ) //true 所有值<10
Array.prototype.fill()? [ES6]
(fill()方法填充數(shù)組中的所有從一開(kāi)始指數(shù)結(jié)束指標(biāo)與靜態(tài)值的元素)
語(yǔ)法:
arr.fill(value)
arr.fill(value,start = 0)
arr.fill(value,start = 0,end = this.length)
(value 值是必須的;start 開(kāi)始位置 俄烁,可選绸栅、默認(rèn)值為;end結(jié)束位置页屠,可選粹胯、默認(rèn)值為數(shù)組的length)
實(shí)例:
varnumbers=[1,2,3]
numbers.fill(1);
[1,2,3].fill(4);// [4, 4, 4]
[1,2,3].fill(4,1);// [1, 4, 4]
[1,2,3].fill(4,1,2);// [1, 4, 3]
[1,2,3].fill(4,1,1);// [1, 2, 3]
[1,2,3].fill(4,-3,-2);// [4, 2, 3]
[1,2,3].fill(4,NaN,NaN);// [1, 2, 3]
Array(3).fill(4);// [4, 4, 4]
[].fill.call({length:3},4);// {0: 4, 1: 4, 2: 4, length: 3}
Array.prototype.filter()? [ES5]
(filter()方法返回的是數(shù)組的一個(gè)子集<也是一個(gè)數(shù)組,新數(shù)組>辰企,傳遞的函數(shù)是用來(lái)邏輯判定的)
語(yǔ)法:
var newArray = arr.filter(callback[,thisArg])
( element:數(shù)組中正在處理的當(dāng)前元素风纠。index:數(shù)組中正在處理的當(dāng)前元素的索引。array:當(dāng)前數(shù)組牢贸。thisArg:fn函數(shù)中this指向.)
實(shí)例:
var words = ["spray","limit","elite","exuberant","destruction","present"];
var longWords = words.filter(function(word){return word.length > 6;})
// Filtered array longWords is ["exuberant", "destruction", "present"]
Array.prototype.find()??[ES6]
(find() 方法返回符合規(guī)定的函數(shù)的數(shù)組的第一個(gè)元素的值竹观。否則返回 undefinded)
語(yǔ)法:
arr.find(callback[,thisArg])
( element:數(shù)組中正在處理的當(dāng)前元素。index:數(shù)組中正在處理的當(dāng)前元素的索引潜索。array:當(dāng)前數(shù)組臭增。thisArg:fn函數(shù)中this指向.)
實(shí)例:
function isBigEnough(element){
? ? ?returnelement>=15;
}
[12,5,8,130,44].find(isBigEnough); ?// 130
function isPrime(element,index,array){
? ? var start=2;
? ? while(start<=Math.sqrt(element)){
? ? ? ? if(element%start++<1){
? ? ? ? ? ? ?returnfalse;
? ? ? ? }
? ? }
? ? ?return element>1;
}
console.log([4,6,8,12].find(isPrime)); ?// undefined, not found
console.log([4,5,8,12].find(isPrime)); ?// 5
Array.prototype.findIndex()? [ES6]
(findIndex()方法和find()很相似,findIndex(0) 的返回值是數(shù)組的索引帮辟,返回滿足條件的數(shù)組的第一個(gè)元素的索引速址。否則返回 -1)
語(yǔ)法:
arr.findIndex(callback[,thisArg])
( element:數(shù)組中正在處理的當(dāng)前元素。index:數(shù)組中正在處理的當(dāng)前元素的索引由驹。array:當(dāng)前數(shù)組芍锚。thisArg:fn函數(shù)中this指向.)
實(shí)例:
function isBigEnough(element){
? ? return element >= 15;
}
[12,5,8,130,44].findIndex(isBigEnough);
// index of 4th element in the Array is returned,
// so this will result in '3'
functionis Prime(element,index,array){
? ? ? var start = 2;
? ? ? while(start <= Math.sqrt(element)) {
? ? ? ? ? ? if(element%start++<1){
? ? ? ? ? ? ? ? ? ?return false;
? ? ? ? ? ? ?}
? ? ? ?}
? ? ? ? return element>1;
?}
console.log([4,6,8,12].findIndex(isPrime)); ? // -1, not found
console.log([4,6,7,12].findIndex(isPrime)); ? // 2
Array.prototype.forEach()? [ES5]
(foreach()方法用來(lái)遍歷數(shù)組中的每個(gè)元素)
語(yǔ)法:
arr.forEach(functioncallback(currentValue, index, array) {
? ? ?//your iterator
}[,thisArg]);
(currentValue :數(shù)組中正在處理的當(dāng)前元素的值。index:數(shù)組中正在處理的當(dāng)前元素的索引蔓榄。 array:當(dāng)前數(shù)組并炮。thisArg:回調(diào)執(zhí)行時(shí),使用此值(即referenceobject))
實(shí)例:
vara=['a','b','c'];
a.forEach(function(element){ ?
? ? ? console.log(element);
});
//a// b// c
(其實(shí)數(shù)組的遍歷有很多方法 ? for...of.. ?甥郑、for...in.. 等都可以)
Array.prototype.includes()? [ES7]
(includes()判定數(shù)組包含某元素逃魄,返回true或false適當(dāng)。)
語(yǔ)法:
arr.includes(searchElement)
arr.includes(searchElement,fromIndex)
(searchElement:搜索的元素澜搅,fromIndex:開(kāi)始搜索元素的索引伍俘,從該位置開(kāi)始搜索)
實(shí)例:
[1,2,3].includes(2);// true
[1,2,3].includes(4);// false
[1,2,3].includes(3,3);// false
[1,2,3].includes(3,-1);// true
[1,2,NaN].includes(NaN);// true
**以上是javascript數(shù)組的簡(jiǎn)單操作邪锌,具體以MDN為標(biāo)準(zhǔn)