concat():用于連接兩個(gè)或多個(gè)數(shù)組螃征。不會(huì)更改現(xiàn)有數(shù)組皂贩,而是返回一個(gè)新數(shù)組
let arr1 = ['Java','PHP']
let arr2 = ['Go','Python']
let arr3 = ['JS']
let arr4 =arr1.concat(arr2,arr3)
console.log(arr1) //??['Java','PHP']
console.log(arr2) //??['Go','Python']
console.log(arr3) //?['JS']
console.log(arr4) //?['Java', 'PHP', 'Go', 'Python', 'JS']
copyWithin():?將數(shù)組元素復(fù)制到數(shù)組中的另一個(gè)位置脱羡,覆蓋現(xiàn)有值罚渐。不會(huì)向數(shù)組添加新元素
注意:該方法會(huì)覆蓋原數(shù)組
let arr = ['Java','PHP','Go','Python','JS']
console.log(arr.copyWithin(3,0,2)) ? //?['Java', 'PHP', 'Go', 'Java', 'PHP']
entries():?返回帶有鍵/值對(duì)的 Array Iterator 對(duì)象, ?不會(huì)改變?cè)瓟?shù)組
let arr = ['Java','PHP','Go','Python','JS']
for (let [key,value]of arr.entries()) {
console.log(key,value)
}
0?'Java'
1?'PHP'
2?'Go'
3?'Python'
4?'JS'
every():?對(duì)數(shù)組的每一項(xiàng)都運(yùn)行給定的函數(shù),若有一項(xiàng)返回 false, 則 every 停止運(yùn)行返回false,若每一項(xiàng)都為 true秧均,則返回 true食侮。不對(duì)沒(méi)有值得數(shù)組元素執(zhí)行函數(shù),不改變?cè)瓟?shù)組
let arr = [5,6,7,8,9,10]
console.log(arr.every(item => item >4)) // true
console.log(arr.every(item => item >5)) // false
fill():?用靜態(tài)值填充數(shù)組中的指定元素, 可以指定開(kāi)始和結(jié)束填充的位置目胡。如果未指定锯七,則將填充所有元素。返回改變后的數(shù)組
注釋:該方法會(huì)覆蓋原始數(shù)組
let arr = ['Java','PHP','Go','Python','JS']
// 指定開(kāi)始和結(jié)束位置
onsole.log(arr.fill('CSS', 2, 4)) // ['Java', 'PHP', 'CSS', 'CSS', 'JS']
// 不指定
console.log(arr.fill('CSS'))// ['CSS', 'CSS', 'CSS', 'CSS', 'CSS']
filter():?返回一個(gè)新數(shù)組誉己,新數(shù)組中的元素是通過(guò)檢查指定數(shù)組中符合條件的所有元素, 如果沒(méi)有元素符合條件眉尸,則返回一個(gè)空數(shù)組。
注意:filter 不會(huì)對(duì)空數(shù)組進(jìn)行檢測(cè)巨双。filter?不會(huì)改變?cè)紨?shù)組噪猾。
let arr = [2,4,6,8,10,11]
let newArr =arr.filter(item => item <8)
console.log(newArr)// [2, 4, 6]
console.log(arr)// [2, 4, 6, 8, 10, 11]
find():用于找出第一個(gè)符合條件的數(shù)組成員。它的參數(shù)是一個(gè)回調(diào)函數(shù)炉峰,所有數(shù)組成員依次執(zhí)行該回調(diào)函數(shù)畏妖,直到找出第一個(gè)返回值為true的成員,然后返回該成員疼阔。如果沒(méi)有符合條件的成員,則返回undefined半夷。
// 查找第一個(gè)小于0的負(fù)數(shù)xxxx
console.log([2,3, -1,8].find(item => item <0))// -1
findIndex():findIndex方法的用法與find方法非常類似婆廊,返回第一個(gè)符合條件的數(shù)組成員的索引值,如果所有成員都不符合條件巫橄,則返回-1淘邻。
[1,2,3,4].find(item => {
return item > 3;
})// 3
forEach(): 按順序遍歷整個(gè)數(shù)組,對(duì)于沒(méi)有值的數(shù)組元素湘换,不執(zhí)行forEach()?方法宾舅。返回值是undefined统阿。無(wú)法中途結(jié)束循環(huán)
let arr = ['Java','PHP','Go','Python','JS']
arr.forEach(item => {
console.log(item)
})
from():?從一個(gè)類似數(shù)組或可迭代對(duì)象中創(chuàng)建一個(gè)新的數(shù)組實(shí)例
var arr = Array.from('ABCDEFG')
console.log(arr) // ['A', 'B', 'C', 'D', 'E', 'F', 'G']
let arr = [1, 2, 3]?
console.log(Array.from(arr, item => item * 10)) // [10, 20, 30]
includes(): 檢查數(shù)組是否包含指定元素,包含返回 true筹我,不包含返回 false
let arr = ['Java','PHP','Go','Python','JS']
console.log(arr.includes('PHP'))// true
console.log(arr.includes('CSS'))// false
indexOf():返回元素在目標(biāo)數(shù)組中第一次出現(xiàn)的索引扶平,若未找到則返回-1。 如果想從尾到頭搜索蔬蕊,請(qǐng)使用?lastIndexOf()?方法结澄。
let arr = ['Java','PHP','Go','Python','JS']
console.log(arr.indexOf('PHP'))// 1
// 也可以指定開(kāi)始位置
console.log(arr.indexOf('PHP',3))// -1
lastIndexOf() : ?和indexOf()相同,區(qū)別在于從尾部向首部查詢
isArray(): 檢查對(duì)象是否為數(shù)組岸夯。是數(shù)組則返回 true麻献,否則返回 false
let arr = ['Java','PHP','Go','Python','JS']
let str ='aabbcc'
console.log(Array.isArray(arr))// true
console.log(Array.isArray(str))// false
toString():?把數(shù)組轉(zhuǎn)換為數(shù)組值(逗號(hào)分隔)的字符串
let arr =['Java', 'PHP', 'Go', 'Python', 'JS']
console.log(arr.toString()); //?Java,PHP,Go,Python, JS
join():?可將所有數(shù)組元素結(jié)合為一個(gè)字符串。行為類似 toString()猜扮,但是您還可以規(guī)定分隔符
let arr =['Java', 'PHP', 'Go', 'Python', 'JS']
console.log(arr.join("*")); //?Java*PHP*Go*Python*JS
keys():?返回帶有數(shù)組鍵的 Array Iterator 對(duì)象勉吻。不改變?cè)瓟?shù)組
let arr = ['Java','PHP','Go','Python','JS']
for (let key of arr.keys()) {
console.log(key)
}
// 0
//1
// 2
// 3
// 4
map():?返回一個(gè)新數(shù)組,數(shù)組中的元素為原始數(shù)組元素調(diào)用函數(shù)處理后的值旅赢。
注意:?map 不會(huì)對(duì)空數(shù)組進(jìn)行檢測(cè)餐曼。map 不會(huì)改變?cè)紨?shù)組。
let arr = [2, 4, 6, 8, 10, 11]?
let newArr = arr.map(item =>?item * 10)?
console.log(newArr) //?[20, 40, 60, 80, 100, 110]
pop():?刪除數(shù)組中最后一個(gè)元素鲜漩,并返回刪除的元素源譬,改變?cè)瓟?shù)組
let arr = ['Java', 'PHP', 'Go', 'Python']?
console.log(arr.pop()) // Python?
console.log(arr) // ['Java', 'PHP', 'Go']
push():?在數(shù)組結(jié)尾處添加一個(gè)新的元素,并返回?cái)?shù)組的新長(zhǎng)度
let arr = ['Java', 'PHP', 'Go', 'Python']?
console.log(arr.length) // 4
?console.log(arr.push('CSS')) // 5
reduce():?數(shù)組中的每一個(gè)元素依次執(zhí)行回調(diào)函數(shù)孕似,不改變?cè)瓟?shù)組
語(yǔ)法:arr.reduce(callback(prev, curVal, index, curArr),[initialValue])
prev:初始值(或者上一次回調(diào)函數(shù)的返回值)
curVal: 當(dāng)前的元素
index: 當(dāng)前元素的索引
curArr:原數(shù)組
initialValue:作為第一次調(diào)用 callback 的第一個(gè)參數(shù)
let arr = [30,7,3,10]
let num =arr.reduce((prev, curVal, index, curArr) => {
console.log(prev, curVal, index)
console.log(curArr)
return prev - curVal
})
//?30 7 1
//?[30, 7, 3, 10]
//?23 3 2
//?[30, 7, 3, 10]
//?20 10 3
//?[30, 7, 3, 10]
console.log(num)// 10
let num1 = arr.reduce((prev, curVal, index, curArr) => {?
console.log(prev, curVal, index)?
return prev - curVal?
}, 40)
//?40 30 0
//?10 7 1
//?3 3 2
//0 10 3
?console.log(num1) // -10
reduceRight():功能和reduce()功能是一樣的踩娘,不同的是reduceRight() 從數(shù)組的末尾向前執(zhí)行
reverse():用于反轉(zhuǎn)數(shù)組中元素的順序。返回反轉(zhuǎn)后的數(shù)組喉祭,改變?cè)瓟?shù)組
let arr = [1,2,3,4,5]
console.log(arr.reverse())// [5, 4, 3, 2, 1]
console.log(arr)// [5, 4, 3, 2, 1]
shift(): 刪除數(shù)組的第一個(gè)元素养渴,并返回刪除的元素,改變?cè)瓟?shù)組
let arr = ['Java', 'PHP', 'Go', 'Python']?
console.log(arr.shift()) // Java?
console.log(arr) // ['PHP', 'Go', 'Python']
slice(startIndex, endIndex): ?返回從 startIndex 開(kāi)始(包括)泛烙,到 endIndex (不包括)之間的數(shù)組, 若?endIndex?省略理卑,則選擇從開(kāi)始位置到數(shù)組末尾的所有元素。使用負(fù)數(shù)從數(shù)組末尾進(jìn)行選擇蔽氨。返回新數(shù)組藐唠,不改變?cè)瓟?shù)組
let arr = ['Java','PHP','Go','Python']
console.log(arr.slice(1,3))// ['PHP', 'Go']
console.log(arr)// ['Java', 'PHP', 'Go', 'Python']
some():?對(duì)數(shù)組的每一項(xiàng)都運(yùn)行給定的函數(shù),若有一項(xiàng)返回 true, 則 some 停止運(yùn)行返回true,若每一項(xiàng)都為 false鹉究,則返回 false宇立。不對(duì)沒(méi)有值得數(shù)組元素執(zhí)行函數(shù),不改變?cè)瓟?shù)組
let arr = ['Java','PHP','Go','Python','PHP']
let result =arr.some(item => {
console.log('arr', item ==='PHP')
return item ==='PHP'
})
//?arr false
//?arr true
console.log('result',result) //?result true
sort():?對(duì)數(shù)組的元素進(jìn)行排序自赔。改變?cè)瓟?shù)組妈嘹,返回排序后的數(shù)組。
// 按字母排序
let arr = ['Java','PHP','Go','Python','PHP']
console.log(arr.sort()) //?['Go', 'Java', 'PHP', 'PHP', 'Python']
// 按給定的函數(shù)排序
let arr = [1, 3, 2, 5, 4]?
arr = arr.sort((a, b) => b - a)
console.log(arr) //?[5, 4, 3, 2, 1]
splice():?對(duì)數(shù)組進(jìn)行刪除修改绍妨,返回被刪除的元素組成的數(shù)組润脸,改變?cè)瓟?shù)組
語(yǔ)法:array.splice(index,?length,item1, .....,itemX)
index:?指定在什么位置添加/刪除項(xiàng)目柬脸,使用負(fù)值指定從數(shù)組末尾開(kāi)始的位置。
length:?要?jiǎng)h除的項(xiàng)目數(shù)毙驯。如果設(shè)置為 0倒堕,則不會(huì)刪除任何項(xiàng)目。
item1, ..., itemX:?要添加到數(shù)組中的新項(xiàng)目尔苦。
let arr = ['Java','PHP','Go','Python']
arr.splice(1,1,'CSS','JS')
console.log(arr)// ['Java', 'CSS', 'JS', 'Go', 'Python']
unshift(): 在數(shù)組的開(kāi)頭添加新元素涩馆,并返回?cái)?shù)組的新長(zhǎng)度
let arr = ['Java', 'PHP', 'Go', 'Python']?
console.log(arr.length) // 4
console.log(arr.unshift('JS')) // 5