join
把數(shù)組中所有元素放入一個(gè)字符串中止潮,返回字符串。
const arr = ['pr', 'is', 18];
console.log(arr.join(' ')); // pr is 18
console.log('=>');
console.log(arr); // [ 'pr', 'is', 18 ]
concat
連接多個(gè)(含兩個(gè))數(shù)組钞楼,兩邊的原始數(shù)組都不會(huì)變化喇闸,返回被連接數(shù)組的一個(gè)副本,可繼續(xù) concat询件。
const arr = [1, 2, 3, 4];
const arr1 = ['pr', 'is', 'a', 'boy'];
const arr2 = [5, 6, 7];
console.log(arr.concat(arr1, arr2).concat(8, 9)); // [1, 2, 3, 4, 'pr', 'is', 'a', 'boy', 5, 6, 7, 8, 9 ]
console.log('=>');
console.log(arr); // [ 1, 2, 3, 4 ]
slice
從開(kāi)始到結(jié)束([)左閉右開(kāi)燃乍,即不包括結(jié)束)選擇數(shù)組的一部分淺拷貝到一個(gè)新數(shù)組。
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(arr.slice(1, 5)); // [ 1, 2, 3, 4 ]
console.log('=>');
console.log(arr); // [ 0,1,2,3,4,5,6,7,8,9 ]
map
創(chuàng)建一個(gè)新數(shù)組并返回宛琅,新數(shù)組的每個(gè)元素由原數(shù)組中的每一個(gè)元素執(zhí)行提供的函數(shù)而來(lái)刻蟹,其中原始數(shù)組不會(huì)發(fā)生改變。
const arr = [1, 2, 3, 4];
console.log(arr.map(i => i * 10 - 5)); // [ 5, 15, 25, 35 ]
console.log('=>');
console.log(arr); // [ 1, 2, 3, 4 ]
every
檢測(cè)數(shù)組所有元素是否都符合指定條件.
如果數(shù)組中檢測(cè)到有一個(gè)元素不滿(mǎn)足夯秃,則整個(gè)表達(dá)式返回 false座咆,且剩余的元素不會(huì)再進(jìn)行檢測(cè);
如果所有元素都滿(mǎn)足條件仓洼,則返回 true介陶;
const arr = [1, 2, 3, 4];
console.log(arr.every(i => i > 2)); // false
console.log(arr.every(i => i > 0)); // true
console.log([].every(i => i === 'pr')); // true
console.log('=>');
console.log(arr); // [ 1, 2, 3, 4 ]
some
用于檢測(cè)數(shù)組中的元素是否滿(mǎn)足指定條件。
如果有一個(gè)元素滿(mǎn)足條件色建,則表達(dá)式返回 true, 剩余的元素不會(huì)再執(zhí)行檢測(cè);
如果沒(méi)有滿(mǎn)足條件的元素哺呜,則返回 false;
const arr = [1, 2, 3, 4];
console.log(arr.some(i => i > 4)); // false
console.log(arr.some(i => i > 0)); // true
console.log([].some(i => i === 'pr')); // false
console.log('=>');
console.log(arr); // [ 1, 2, 3, 4 ]
filter
創(chuàng)建一個(gè)新的數(shù)組,新數(shù)組中的元素是通過(guò)檢查符合條件的所有元素箕戳。
const arr = [1, 2, 3, 4];
console.log(arr.filter(i => i > 2)); // [3, 4]
console.log([].filter(i => i === 'pr')); // []
console.log('=>');
console.log(arr); // [ 1, 2, 3, 4 ]
reduce
接收一個(gè)函數(shù)作為累加器某残,數(shù)組中的每個(gè)值(從左到右)開(kāi)始縮減,最終計(jì)算為一個(gè)值陵吸。若是空數(shù)組是不會(huì)執(zhí)行回調(diào)函數(shù)的;
const arr = [1, 2, 3, 4];
console.log(arr.reduce((prev, cur) => prev + cur, 0)); // 10
console.log('=>');
console.log(arr); // [ 1, 2, 3, 4 ]
返回新數(shù)組玻墅,改變?cè)瓟?shù)組
pop
刪除數(shù)組的最后一個(gè)元素,并返回這個(gè)元素(即被刪除的元素)壮虫。
如果數(shù)組為空澳厢,則不改變數(shù)組环础,返 undefined;
const arr = [1, 2, 3, 4];
const arr1 = [];
console.log(arr.pop()); // 4
console.log(arr1.pop()); // undefined
console.log('=>');
console.log(arr); // [ 1, 2, 3 ]
console.log(arr1); // []
push
將一個(gè)或多個(gè)元素添加到數(shù)組的末尾剩拢,返回值是改變后的數(shù)組的長(zhǎng)度线得。
const arr = [1, 2, 3, 4];
console.log(arr.shift()); // 1
console.log('=>');
console.log(arr); // [ 2, 3, 4 ]
shift
刪除數(shù)組的第一個(gè)元素,并返回這個(gè)元素徐伐。
const arr = [1, 2, 3, 4];
console.log(arr.shift()); // 1
console.log('=>');
console.log(arr); // [ 2, 3, 4 ]
unshift
將一個(gè)或多個(gè)元素添加到數(shù)組的開(kāi)頭贯钩,返回值是改變后的數(shù)組的長(zhǎng)度。
const arr = [1, 2, 3, 4];
console.log(arr.unshift(5, 6)); // 6
console.log(arr.unshift([1, 2])); // 7
console.log('=>');
console.log(arr); // [ [ 1, 2 ], 5, 6, 1, 2, 3, 4 ]
reverse
顛倒數(shù)組中元素的位置办素,返回該數(shù)組的引用角雷。
const arr = [1, 2, 3, 4];
const hello = 'hello';
const helloArray = hello.split('');
console.log(helloArray.reverse().join('')); // olleh
console.log(arr.reverse()); // [ 4, 3, 2, 1 ]
console.log('=>');
console.log(arr); // [ 4, 3, 2, 1 ]
console.log(helloArray); // [ 'o', 'l', 'l', 'e', 'h' ]
sort
對(duì)數(shù)組的元素進(jìn)行排序,并返回?cái)?shù)組摸屠。排序不一定是穩(wěn)定的谓罗。默認(rèn)排序順序是根據(jù)字符串 Unicode 碼點(diǎn)。
const arr = [1, 2, 3, 4, 10, 12, 22];
console.log(arr.sort()); // [ 1, 10, 12, 2, 22, 3, 4];
console.log('=>');
console.log(arr); // [ 1, 10, 12, 2, 22, 3, 4];
splice
向數(shù)組中添加/刪除項(xiàng)目季二,然后返回被刪除項(xiàng)目檩咱。
const arr = [1, 2, 3, 4];
console.log(arr.splice(1, 2, 10, 12)); // [ 2, 3 ]
console.log('=>');
console.log(arr); // [ 1, 10, 12, 4 ]