常用數(shù)組的方法

會(huì)改變?cè)瓟?shù)組的方法

1.push( ) 方法

**說明:向數(shù)組的末尾添加一個(gè)或多個(gè)元素,并返回新的長度 **

let array=[1,2];
let arrayChange=array.push("3"); 
console.log(arrayChange) // 返回?cái)?shù)組改變后的長度
onsole.log('array :>> ', array); // [1,2,'3']console.log(arrayChange) 3 --- 返回的是數(shù)組改變后的值

2.unshift( )方法

說明:將參數(shù)添加到原數(shù)組開頭,并返回?cái)?shù)組長度

let array=[1,2];
let arrayChange=array.unshift("3");
console.log(array) //[3,1,2]
console.log(arrayChange) 3---返回的結(jié)果就是數(shù)組改變后的長度:3

3.pop( )方法

說明:pop方法從數(shù)組中刪除最后一個(gè)元素,并返回該元素的值。此方法更改數(shù)組的長度

let array=[1,2,3,4];
console.log(array.pop()) //4 返回被刪除得最后元素
console.log(array) //[1,2,3] //返回刪除最后一個(gè)元素后得數(shù)組,更改了數(shù)組得長度

4.shift( )方法

說明:shift方法從數(shù)組中刪除第一個(gè)元素,并返回該元素的值。此方法更改數(shù)組的長度

返回值:從數(shù)組中刪除的元素; 如果數(shù)組為空則返回[undefined]

let array=[1,2,3,4];
console.log(array.shift()) //1 返回被刪除得第一個(gè)元素
console.log(array) //[2,3,4] //返回刪除第一個(gè)元素后得數(shù)組,更改了數(shù)組得長度

5.reverse( )

說明: reverse方法用于顛倒數(shù)組中元素的順序,該方法會(huì)改變?cè)瓉淼臄?shù)組

let values = [1,2,3,4,5];
values.reverse();
console.log(values);//[5,4,3,2,1]

6.sort( )

說明:sort方法用原地算法對(duì)數(shù)組的元素進(jìn)行排序,并返回?cái)?shù)組。默認(rèn)排序順序是在將元素轉(zhuǎn)換為字符串,然后比較它們的UTF-16代碼單元值序列時(shí)構(gòu)建的,原數(shù)組將會(huì)被改變

sotr的參數(shù)函數(shù)本身接受兩個(gè)參數(shù),表示進(jìn)行比較的兩個(gè)數(shù)組成員。如果該函數(shù)的返回值大于 0,表示第一個(gè)成員排在第二個(gè)成員后面;其他情況下,都是第一個(gè)元素排在第二個(gè)元素前面。

let values = [2,3,44,55,12];
console.log(values.sort());//[12, 2, 3, 44, 55] 

sort方法可以使用函數(shù)表達(dá)式方便書寫

var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
  return a - b;
});
console.log(numbers); 


也可以寫成:
var numbers = [4, 2, 5, 1, 3]; 
numbers.sort((a, b) => a - b); 
console.log(numbers);
// [1, 2, 3, 4, 5]

7.splice() 方法通過刪除或替換現(xiàn)有元素或者原地添加新的元素來修改數(shù)組,并以數(shù)組形式返回被刪除或者修改的內(nèi)容。此方法會(huì)改變?cè)瓟?shù)組。

說明: 當(dāng)splice傳遞兩個(gè)參數(shù)的時(shí)候,參數(shù)1:開始刪除的下標(biāo)位置,參數(shù)2:刪除數(shù)組元素的個(gè)數(shù),返回新的數(shù)組。當(dāng)splice傳遞三個(gè)參數(shù)的時(shí)候,參數(shù)1:開始刪除的下表位置,參數(shù)2:刪除數(shù)組元素的個(gè)數(shù),參數(shù)3:向數(shù)組添加的新元素。注意數(shù)組下標(biāo)0開始。

var arr = [1,2,3,4,5]
var arr2 = arr.splice(2,2) 
console.log('arr初始值',arr) // 原數(shù)組返回刪除之后的元素[1,2,5]
console.log('arr2改變之后的值',arr2) 返回被刪除的元素[3,4]

var arr3 = arr.splice(2,0,'增加一個(gè)值')
console.log('arr3改變之后的值',arr3) // []  如果第二個(gè)參數(shù)0 或者負(fù)數(shù),則不移除元素。這種情況下,至少應(yīng)添加一個(gè)新元素
console.log(arr) // 返回增加之后的新數(shù)組[1,2,'增加一個(gè)值',3,4,5]

var arr4 = arr.splice(-2,1) 
console.log(arr4) // 從倒數(shù)第二個(gè)開始,刪除一個(gè)元素,但不包括最后一個(gè), 所以打印數(shù)組[4] 
coonsole.log(arr) // 返回被刪除后的數(shù)組 [1,2,3,5]

不會(huì)修改數(shù)組的方法:

1.concat( ): 方法將一個(gè)或多個(gè)字符串與原字符串連接合并,形成一個(gè)新的字符串并返回。

該方法也可以連接數(shù)組, 不會(huì)修改原數(shù)組

數(shù)組:

var num1 = [1,2,3,4];

var num2 = [5,6,7,8];

console.log('concat:>> ',  parents.concat(brothers)); //[1,2,3,4,5,6,7,8]

字符串:

var num1 = '1234'

var num2 = '5678'

console.log('concat:>> ',  num1.concat(num2));

2.join( ) 方法將數(shù)組中所有元素連接為一個(gè)字符串,元素是通過指定的分隔符進(jìn)行分隔的。

var array = [1,2,3,4];
console.log('array:>> ',  array.join()); //字符串1234

3.slice(start,end) 方法從某個(gè)已有的數(shù)組返回選定的元素,從start位開始返回到end(包括start不包括end)如果是負(fù)數(shù),表示從數(shù)組尾部進(jìn)行計(jì)算(同樣:包括start不包括end),請(qǐng)注意,該方法并不會(huì)修改數(shù)組,而是返回一個(gè)子數(shù)組。

var array = [1,2,3,4];
console.log('array:>> ',  array.slice(1,2)); //從下標(biāo)第一個(gè)位置開始,到下標(biāo)為2,(不包括2),作為原數(shù)組,新數(shù)組不變
console.log(array.slice(-2,-1)) // 打印3  表示抽取了原數(shù)組中的倒數(shù)第二個(gè)元素到最后一個(gè)元素(不包含最后一個(gè)元素,也就是只有倒數(shù)第二個(gè)元素)。

4.map( )方法創(chuàng)建一個(gè)新數(shù)組,其結(jié)果是該數(shù)組中的每個(gè)元素是調(diào)用一次提供的函數(shù)后的返回值。函數(shù)會(huì)被自動(dòng)傳入三個(gè)參數(shù):數(shù)組元素,元素索引,原數(shù)組本身

var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.map(function(item,index,arr){
    return item * 2
})
console.log(everyResult);// [2,4,6,8,10,8,6,4,2]

5.forEach( )****對(duì)數(shù)組的所有成員依次執(zhí)行參數(shù)函數(shù),該函數(shù)接受三個(gè)參數(shù):**value****key**、整個(gè)數(shù)組。

var a = ['a', 'b', 'c'];
a.forEach(function(value,key,a){
    console.log(value,key,a)
})
// a 0 (3) ["a", "b", "c"]
// b 1 (3) ["a", "b", "c"]
// c 2 (3) ["a", "b", "c"]

6.some( ) 對(duì)數(shù)組的每一項(xiàng)運(yùn)行給定函數(shù),有一項(xiàng)符合條件返回true,

var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.every(function(item,index,arr){
    return (item > 2)
})
console.log(everyResult);// true

7.every( )對(duì)數(shù)組的每一項(xiàng)運(yùn)行給定函數(shù),每一項(xiàng)都符合條件返回true,有一項(xiàng)不符合或全部不符合返回false

var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.every(function(item,index,arr){
    return (item > 2)
})
console.log(everyResult);// false

8.filter( )對(duì)數(shù)組的每一項(xiàng)運(yùn)行給定函數(shù),返回函數(shù)會(huì)返回true的項(xiàng)組成的數(shù)組

var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.filter(function(item,index,arr){
    return (item > 2)
})
console.log(everyResult);// [3,4,5,4,3]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容