javaScript數(shù)組方法匯總

JavaScript的 Array 對(duì)象是用于構(gòu)造數(shù)組的全局對(duì)象闸拿,數(shù)組是類似于列表的高階對(duì)象徒欣。

for

for不是Array特有的方法

for是javaScript的特有語句

for(let i = 0; i<numberList.length;i++) {

  console.log('numberList[i]---------',numberList[i])

}

forEach

對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)

該方法沒有返回值

語法:arr.forEach(callback(currentValue [, index [, array]])[, thisArg])

  • 該函數(shù)可以一依次傳入三個(gè)參數(shù)卑笨,分別為數(shù)組當(dāng)前的值蒂教,數(shù)組當(dāng)前項(xiàng)的索引磕谅,數(shù)組對(duì)象本身

    numberList.forEach(function(element, index, array) {
    console.log('array-----------------',array);
    console.log('index-----------------',index);
    console.log('element-----------------',element);
    })

map

對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)

該方法返回每次函數(shù)調(diào)用的結(jié)果組成的新數(shù)組

語法:var new_array = arr.map(function callback(currentValue[, index[, array]]) {

// Return element for new_array
}[, thisArg])

  • 接收一個(gè)函數(shù)回調(diào)callback,接收三個(gè)參數(shù):currentValue骏掀、index、array

  • currentValue:callback 數(shù)組中正在處理的當(dāng)前元素

  • index:callback 數(shù)組中正在處理的當(dāng)前元素的索引卸夕。

  • array:map 方法調(diào)用的數(shù)組层释。

    let newArray = numberList.map(function(element, index, array) {
    return !element ? 0 : element + 1
    })

concat

連接2個(gè)或者更多數(shù)組,并返回結(jié)果

此方法不會(huì)更改現(xiàn)有數(shù)組快集,而是返回一個(gè)新數(shù)組

語法:var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])

  • 通過concat連接兩個(gè)數(shù)組:let numberList_2 = [12, 13, 14, 15, 16, 17, 18];
    let numberList_3 = []
    numberList_3 = numberList_3.concat(numberList, numberList_2);
    console.log('numberList_3-----------------', numberList_3);
  • 將值連接到數(shù)組:let alpha = ['a', 'b', 'c'];
    let alphaNumeric = alpha.concat(1, [2, 3]);
    console.log(alphaNumeric);
    // results in ['a', 'b', 'c', 1, 2, 3]

filter

對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)

該方法會(huì)返回true的項(xiàng)組成的數(shù)組

語法:var newArray = arr.filter(callback(element[, index[, array]])[, thisArg])

  • 該方法接收一個(gè)函數(shù)回調(diào)callback贡羔,接收三個(gè)參數(shù):element、index个初、array

  • element:數(shù)組中當(dāng)前正在處理的元素

  • index:正在處理的元素在數(shù)組中的索引

  • array:調(diào)用了 filter 的數(shù)組本身

  • 示例:

    let filtered = [12, 5, 8, 130, 44].filter(function (element) {
    return element >= 10;
    });
    

every

對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)

如果該函數(shù)對(duì)每一項(xiàng)都返回true乖寒,則返回true

若收到一個(gè)空數(shù)組,此方法在一切情況下都會(huì)返回 true院溺。

every() 不會(huì)改變?cè)瓟?shù)組

語法:arr.every(callback(element[, index[, array]])[, thisArg])

  • 該方法接收一個(gè)函數(shù)回調(diào)callback楣嘁,用來測試每個(gè)元素的函數(shù),接收三個(gè)參數(shù):element、index逐虚、array

  • element:用于測試的當(dāng)前值聋溜。

  • index:用于測試的當(dāng)前值的索引

  • array:調(diào)用 every 的當(dāng)前數(shù)組

    let everyResult = [12, 54, 18, 130, 44].every(function (element, index, array) {
    return element >= 10
    })

some

some() 方法測試數(shù)組中是不是至少有1個(gè)元素通過了被提供的函數(shù)測試,它返回的是一個(gè)Boolean類型的值。

對(duì)數(shù)組中每一項(xiàng)運(yùn)行給定函數(shù)

如果任意一項(xiàng)返回true叭爱,則返回true

注意:如果用一個(gè)空數(shù)組進(jìn)行測試撮躁,在任何情況下它返回的都是false。

some() 被調(diào)用時(shí)不會(huì)改變數(shù)組买雾。

語法:arr.some(callback(element[, index[, array]])[, thisArg])

  • 該方法接收一個(gè)函數(shù)回調(diào)callback把曼,用來測試每個(gè)元素的函數(shù),接收三個(gè)參數(shù):element漓穿、index嗤军、array

  • element: 數(shù)組中正在處理的元素

  • index : 數(shù)組中正在處理的元素的索引值。

  • array :some()被調(diào)用的數(shù)組晃危。

    let someResult = [2, 5, 8, 1, 4].some(function(element, index, array) {
    return element > 10;
    })
    console.log('someResult---------', someResult)

from

該方法從一個(gè)類似數(shù)組或可迭代對(duì)象創(chuàng)建一個(gè)新的型雳,淺拷貝的數(shù)組實(shí)例

語法:Array.from(arrayLike[, mapFn[, thisArg]])

  • 該方法接收一個(gè)arrayLike,mapFn山害,thisArg
  • arrayLike :想要轉(zhuǎn)換成數(shù)組的偽數(shù)組對(duì)象或可迭代對(duì)象纠俭。
  • mapFn : 如果指定了該參數(shù),新數(shù)組中的每個(gè)元素會(huì)執(zhí)行該回調(diào)函數(shù)浪慌。
  • thisArg : 可選參數(shù)冤荆,執(zhí)行回調(diào)函數(shù) mapFn 時(shí) this 對(duì)象。

個(gè)可選參數(shù) mapFn权纤,可以在最后生成的數(shù)組上再執(zhí)行一次 map 方法后再返回钓简。

也就是說 Array.from(obj, mapFn, thisArg) 就相當(dāng)于 Array.from(obj).map(mapFn, thisArg)

從Sting生成數(shù)組

let fromResult = Array.from('123213')

從Set生成數(shù)組 實(shí)現(xiàn)數(shù)組去重

const set = new Set(['foo', 'bar', 'baz', 'foo']);
Array.from(set);
// [ "foo", "bar", "baz" ]

of

創(chuàng)建一個(gè)具有可變數(shù)量參數(shù)的新數(shù)組實(shí)例

語法:Array.of(element0[, element1[, ...[, elementN]]])

  • elementN:任意個(gè)參數(shù),將按順序成為返回?cái)?shù)組中的元素汹想。

Array.of() 和 Array 構(gòu)造函數(shù)之間的區(qū)別在于處理整數(shù)參數(shù)

Array.of(7);       // [7]
Array.of(1, 2, 3); // [1, 2, 3]
Array(7);          // [ , , , , , , ]
Array(1, 2, 3);    // [1, 2, 3]

返回新的 Array 實(shí)例外邓。

indexOf

indexOf()方法返回在數(shù)組中可以找到一個(gè)給定元素的第一個(gè)索引,如果不存在古掏,則返回-1损话。

該方法將從頭到尾地檢索數(shù)組,看它是否含有對(duì)應(yīng)的元素

語法:arr.indexOf(searchElement[, fromIndex])

  • searchElement 要查找的元素
  • fromIndex 開始查找的位置槽唾。 如果該索引值大于或等于數(shù)組長度丧枪,意味著不會(huì)在數(shù)組里查找,返回-1
  • 如果參數(shù)中提供的索引值是一個(gè)負(fù)值庞萍,則將其作為數(shù)組末尾的一個(gè)抵消拧烦,即-1表示從最后一個(gè)元素開始查找,-2表示從倒數(shù)第二個(gè)元素開始查找 钝计,以此類推恋博。
  • 注意:如果參數(shù)中提供的索引值是一個(gè)負(fù)值齐佳,并不改變其查找順序,查找順序仍然是從前向后查詢數(shù)組债沮。如果抵消后的索引值仍小于0重虑,則整個(gè)數(shù)組都將會(huì)被查詢。其默認(rèn)值為0.

// 找出指定元素出現(xiàn)的所有位置

var indices = [];
var array = ['a', 'b', 'a', 'c', 'a', 'd'];
var element = 'a';
var idx = array.indexOf(element);
if(idx == -1) {
  indices = [];
}
while (idx != -1) {
  indices.push(idx);
  idx = array.indexOf(element, idx + 1);
}
console.log('indices-------',indices);

lastIndexOf

lastIndexOf()方法返回在數(shù)組中可以找到一個(gè)給定元素的最后一次出現(xiàn)的索引秦士,并返回給定元素所在的索引值,如果不存在永高,則返回-1(從數(shù)組的后面向前查找隧土,從 fromIndex 處開始)

該方法將從尾到頭地檢索數(shù)組,看它是否含有對(duì)應(yīng)的元素

開始位置的索引為 0命爬。

語法:arr.lastIndexOf(searchElement[, fromIndex])

  • 從此位置開始逆向查找
  • searchElement: 要查找的元素 必選參數(shù)
    • 從此位置開始逆向查找
    • 默認(rèn)為數(shù)組的長度減 1(arr.length - 1)曹傀,即整個(gè)數(shù)組都被查找
    • 如果該值大于或等于數(shù)組的長度,則整個(gè)數(shù)組會(huì)被查找饲宛。
    • 如果為負(fù)值皆愉,將其視為從數(shù)組末尾向前的偏移。即使該值為負(fù)艇抠,數(shù)組仍然會(huì)被從后向前查找幕庐。
    • 如果該值為負(fù)時(shí),其絕對(duì)值大于數(shù)組長度家淤,則方法返回 -1异剥,即數(shù)組不會(huì)被查找。
    • 返回值:數(shù)組中該元素最后一次出現(xiàn)的索引絮重,如未找到返回-1冤寿。
      var last_array = [2, 5, 9, 2];
      var last_array_index = last_array.lastIndexOf(2);
      last_array_index = last_array.lastIndexOf(7);
      // 該值大于或等于數(shù)組的長度,則整個(gè)數(shù)組會(huì)被查找 從位置索引為0開始
      last_array_index = last_array.lastIndexOf(2, 3);
      last_array_index = last_array.lastIndexOf(2, 2);
      last_array_index = last_array.lastIndexOf(2, -2);
      last_array_index = last_array.lastIndexOf(2, -1);
      console.log('last_array_index-------', last_array_index)

find

find()方法返回?cái)?shù)組中滿足提供的測試函數(shù)的第一個(gè)元素的值

語法:arr.find(callback[, thisArg])

  • 該方法接收一個(gè)回調(diào)函數(shù)青伤,在數(shù)組每一項(xiàng)上執(zhí)行的函數(shù)督怜,接收 3 個(gè)參數(shù):element、index狠角、array

  • element : 當(dāng)前遍歷到的元素号杠。

  • index : 可選參數(shù) 當(dāng)前遍歷到的索引。

  • array: 可選參數(shù) 數(shù)組本身

  • thisArg : 可選參數(shù) 執(zhí)行回調(diào)時(shí)用作this 的對(duì)象

  • callback函數(shù)帶有3個(gè)參數(shù):當(dāng)前元素的值丰歌、當(dāng)前元素的索引究流,以及數(shù)組本身

  • // 用對(duì)象的屬性查找數(shù)組里的對(duì)象,返回找到該對(duì)象
    var inventory = [
    { name: 'apples', quantity: 2 },
    { name: 'bananas', quantity: 0 },
    { name: 'cherries', quantity: 5 }
    ];

    let inventory_result = inventory.find(function(fruit, index) {
      return fruit.name === 'bananas';
    })
    
    console.log('inventory_result------', inventory_result)
    

返回值:數(shù)組中第一個(gè)滿足所提供測試函數(shù)的元素的值,否則返回 undefined动遭。

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

findIndex

該方法返回?cái)?shù)組中滿足提供的測試函數(shù)的第一個(gè)元素的索引芬探。若沒有找到對(duì)應(yīng)元素則返回-1。

語法:arr.findIndex(callback[, thisArg])

  • element :當(dāng)前元素

  • index:當(dāng)前元素的索引

  • array : 調(diào)用findIndex的數(shù)組

  • 示例:

    let findIndex_data = [4, 6, 8, 12].findIndex(function(item, index, array) {
    return item > 5
    })
    console.log('findIndex_data----', findIndex_data)

includes

該方法用來判斷一個(gè)數(shù)組是否包含一個(gè)指定的值厘惦,根據(jù)情況偷仿,如果包含則返回 true哩簿,否則返回false。

語法:arr.includes(valueToFind[, fromIndex])

  • valueToFind:需要查找的元素值酝静。
  • fromIndex:可選參數(shù)节榜,從fromIndex 索引處開始查找 valueToFind。如果為負(fù)值别智,則按升序從 array.length + fromIndex 的索引開始搜 (即使從末尾開始往前跳 fromIndex 的絕對(duì)值個(gè)索引宗苍,然后往后搜尋)。默認(rèn)為 0薄榛。
  • 返回一個(gè)布爾值 Boolean 讳窟,如果在數(shù)組中找到了(如果傳入了 fromIndex ,表示在 fromIndex 指定的索引范圍中找到了)則返回 true 敞恋。
    • 如果 fromIndex 大于等于數(shù)組的長度丽啡,則會(huì)返回 false,且該數(shù)組不會(huì)被搜索硬猫。
    • 如果 fromIndex 為負(fù)值补箍,計(jì)算出的索引將作為開始搜索searchElement的位置。如果計(jì)算出的索引小于 0啸蜜,則整個(gè)數(shù)組都會(huì)被搜索坑雅。
  • includes方法示例:
    [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

返回一個(gè)布爾值 Boolean

valueOf

這是數(shù)組對(duì)象的默認(rèn)方法,該方法屬于Object對(duì)象衬横,由于所有的對(duì)象都"繼承"了Object的對(duì)象實(shí)例霞丧,因此幾乎所有的實(shí)例對(duì)象都可以使用該方法。ps:JavaScript的 Array 對(duì)象是用于構(gòu)造數(shù)組的全局對(duì)象冕香,數(shù)組是類似于列表的高階對(duì)象蛹尝。

把數(shù)組轉(zhuǎn)換為字符串,并返回結(jié)果

arrayObject 的數(shù)組對(duì)象的原始值表示悉尾。

語法:arr.valueOf()

var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May'];
months.valueOf();

toString

JavaScript的 Array 對(duì)象是用于構(gòu)造數(shù)組的全局對(duì)象突那,數(shù)組是類似于列表的高階對(duì)象。所以覆蓋了Object的 toString 方法

返回一個(gè)字符串构眯,表示指定的數(shù)組及其元素

語法:arr.toString()

  • 返回值:一個(gè)表示指定的數(shù)組及其元素的字符串

  • 對(duì)于數(shù)組對(duì)象愕难,toString 方法連接數(shù)組并返回一個(gè)字符串,其中包含用逗號(hào)分隔的每個(gè)數(shù)組元素惫霸。
    const array1 = [1, 2, 'a', '1a'];

    console.log(array1.toString()); // 1,2,a,1a
    

copyWithin

該方法淺復(fù)制數(shù)組的一部分到同一數(shù)組中的另一個(gè)位置猫缭,并返回它,不會(huì)改變?cè)瓟?shù)組的長度壹店。

語法:arr.copyWithin(target[, start[, end]])

entries

方法返回一個(gè)新的Array Iterator對(duì)象猜丹,該對(duì)象包含數(shù)組中每個(gè)索引的鍵/值對(duì)。

語法:arr.entries()

  • 返回值:返回一個(gè)新的 Array 迭代器對(duì)象
  • Array Iterator是對(duì)象硅卢,它的原型上有一個(gè)next方法
  • next方法可用用于遍歷迭代器取得原數(shù)組的[key,value]
    var arr_iterator = ["a", "b", "c"];
    var iterator = arr_iterator.entries();
    console.log('iterator-----',iterator.next().value);

keys

keys()方法返回一個(gè)包含數(shù)組中每個(gè)索引鍵的Array Iterator對(duì)象

語法:arr.keys()

  • 示例// 索引迭代器會(huì)包含那些沒有對(duì)應(yīng)元素的索引
    const array2_keys = [1, '', 'a', 'b']
    const object_keys = Object.keys(array2_keys);
    console.log('object_keys-------', object_keys)
    var denseKeys = [...object_keys.keys()];
    console.log('denseKeys-------', denseKeys)
  • 返回值:一個(gè)新的 Array 迭代器對(duì)象射窒。

values

values() 方法返回一個(gè)新的 Array Iterator 對(duì)象藏杖,該對(duì)象包含數(shù)組每個(gè)索引的值

語法:arr.values()

  • 返回值:一個(gè)新的 Array 迭代對(duì)象。該對(duì)象包含數(shù)組每個(gè)索引的值
  • 示例:
    const array1_values = ['array1_values', 'b', 'c'];
    const iterator_values = array1_values.values();
    console.log('iterator_values', [...iterator_values])
    for (const value of iterator) {
    console.log(value);
    }

返回值:一個(gè)新的 Array 迭代對(duì)象脉顿。

fill

fill() 方法用一個(gè)固定值填充一個(gè)數(shù)組中從起始索引到終止索引內(nèi)的全部元素蝌麸。不包括終止索引。

語法:arr.fill(value[, start[, end]])

  • value: 必選參數(shù) 用來填充數(shù)組元素的值艾疟。
  • start:可選參數(shù) 起始索引来吩,默認(rèn)值為0。
  • end :可選參數(shù) 終止索引蔽莱,默認(rèn)值為 this.length弟疆。
  • 返回值:修改后的數(shù)組。
  • 如果 start 是個(gè)負(fù)數(shù), 則開始索引會(huì)被自動(dòng)計(jì)算成為 length+start
  • 如果 end 是個(gè)負(fù)數(shù), 則結(jié)束索引會(huì)被自動(dòng)計(jì)算成為 length+end
  • // 當(dāng)只有value值碾褂,start與end沒有值時(shí),value值
    let data_fill = [1, 2, 3].fill(4); // [4, 4, 4]
    console.log('data_fill------', data_fill)
  • // 當(dāng)value值與start值存在
    let data_fill_start = [1, 2, 3].fill(4, 0, 1); // [[4, 2, 3]
    console.log('data_fill_start------', data_fill_start)
  • // 當(dāng)start與end的值存在并且是負(fù)數(shù)時(shí)候
    // 此時(shí)得start等于array.length + start = 3 + (-3) = 0;
    // 此時(shí)得end等于array.length + end = 3 + (-2) = 1
    let fu_fill_start_end = [1, 2, 3].fill(4, -3, -2); // [4, 2, 3]
    console.log('fu_fill_start_end-------', fu_fill_start_end)

注意:當(dāng)一個(gè)對(duì)象被傳遞給 fill方法的時(shí)候, 填充數(shù)組的是這個(gè)對(duì)象的引用历葛。

reduce

reduce() 方法對(duì)數(shù)組中的每個(gè)元素執(zhí)行一個(gè)由您提供的reducer函數(shù)(升序執(zhí)行)正塌,將其結(jié)果匯總為單個(gè)返回值。

語法:arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])

  • 該方法接收一個(gè)回調(diào)函數(shù)callback,執(zhí)行數(shù)組中每個(gè)值 (如果沒有提供 initialValue則第一個(gè)值除外)的函數(shù)恤溶,包含四個(gè)參數(shù):
  • accumulator: 累計(jì)器累計(jì)回調(diào)的返回值; 它是上一次調(diào)用回調(diào)時(shí)返回的累積值乓诽,或initialValue
  • currentValue:數(shù)組中正在處理的元素。
  • index :可選參數(shù) 數(shù)組中正在處理的當(dāng)前元素的索引咒程。 如果提供了initialValue鸠天,則起始索引號(hào)為0,否則從索引1起始帐姻。
  • array:可選參數(shù) 調(diào)用reduce()的數(shù)組
  • initialValue:可選參數(shù) 作為第一次調(diào)用 callback函數(shù)時(shí)的第一個(gè)參數(shù)的值稠集。
  • initialValue: 如果沒有提供初始值,則將使用數(shù)組中的第一個(gè)元素饥瓷。 在沒有初始值的空數(shù)組上調(diào)用 reduce 將報(bào)錯(cuò)剥纷。
  • 如果arr數(shù)組為空且沒有提供initialValue,會(huì)拋出TypeError
  • // 數(shù)組里所有值的和
    let reduce_data = [0, 1, 2, 3, 4].reduce(function(accumulator, currentValue, currentIndex, array) {
    return accumulator + currentValue;
    }, 4); // 輸出14
  • // 數(shù)組里所有值的和
    var sum = [0, 1, 2, 3].reduce(function (accumulator, currentValue) {
    return accumulator + currentValue;
    }, 0); // 輸=出6

sort

該方法用于對(duì)數(shù)組的元素進(jìn)行排序

排序順序可以是字母或數(shù)字呢铆,并按升序或降序晦鞋。

默認(rèn)情況下,sort()會(huì)按照升序重新排列數(shù)組元素棺克,即最小的值在前面悠垛,最大的值在后面。

即使數(shù)組的元素都是數(shù)值娜谊,也會(huì)先把數(shù)組轉(zhuǎn)換為字符串再比較确买、排序。

注意:會(huì)改變?cè)瓟?shù)組纱皆,數(shù)組在原數(shù)組上進(jìn)行排序拇惋,不生成副本

示例:數(shù)字?jǐn)?shù)組

let sort_values = [0, 1, 5, 10, 15];

- // 升序情況下
sort_values.sort(function(a, b) {
return a - b
})
- // 降序情況下
sort_values.sort(function(a, b) {
return b - a
})

reverse

該方法也用于對(duì)數(shù)組的元素進(jìn)行排序

反向排序周偎,方法很直觀,但不夠靈活

注意:會(huì)改變?cè)瓟?shù)組撑帖,數(shù)組在原數(shù)組上進(jìn)行排序蓉坎,不生成副本

示例:數(shù)字?jǐn)?shù)組

let reverse_values = [0, 1, 5, 10, 15];
reverse_values.reverse()
console.log('sort_values-------', reverse_values)

slice

該方法可以接收一個(gè)或兩個(gè)參數(shù):返回元素的開始索引和結(jié)束索引。

如果只有一個(gè)參數(shù)胡嘿,則 slice()會(huì)返回該索引到數(shù)組末尾的所有元素蛉艾。

如果有兩個(gè)參數(shù),則 slice()返回從開始索引到結(jié)束索引對(duì)應(yīng)的所有元素衷敌,其中不包含結(jié)束索引對(duì)應(yīng)的元素勿侯。

slice(start,end)

  • start 必需。規(guī)定從何處開始選取缴罗。如果是負(fù)數(shù)助琐,那么它規(guī)定從數(shù)組尾部開始算起的位置。
    • 也就是說面氓,-1 指最后一個(gè)元素兵钮,-2 指倒數(shù)第二個(gè)元素,以此類推舌界。
  • end 可選掘譬。規(guī)定從何處結(jié)束選取。該參數(shù)是數(shù)組片斷結(jié)束處的數(shù)組下標(biāo)呻拌。

例子:let colors = ["red", "green", "blue", "yellow", "purple"];

  • 如果只有一個(gè)參數(shù)葱轩,則 slice()會(huì)返回該索引到數(shù)組末尾的所有元素。
  • // let colors2 = colors.slice(1);
    // console.log('colors---------', colors2)
    let colors3 = colors.slice(-1)
    console.log('colors3---------', colors3)
    
  • 如果有兩個(gè)參數(shù)藐握,則 slice()返回從開始索引到結(jié)束索引對(duì)應(yīng)的所有元素靴拱,其中不包含結(jié)束索引對(duì)應(yīng)的元素。
  • let colors3 = colors.slice(1, 4);
    console.log('colors3---------', colors3);
    
    - 打踊铡:["green", "blue", "yellow"]
    

slice() 方法不會(huì)改變?cè)紨?shù)組缭嫡。

  • console.log('colors---------slice() 方法不會(huì)改變?cè)紨?shù)組', colors) // ["red", "green", "blue", "yellow", "purple"]

splice

方法用于添加或刪除數(shù)組中的元素。

let splice_colors = ['red', 'green', 'blue']

主要目的是在數(shù)組中間插入元素抬闷,但有 3 種不同的方式使用這個(gè)方法妇蛀。

  • 第一種方法 刪除功能
  • 需要給 splice()傳 2 個(gè)參數(shù)
    • 第一個(gè)要?jiǎng)h除元素的位置,第二個(gè)要?jiǎng)h除元素的數(shù)量笤成。
    • 可以從數(shù)組中刪除任意多個(gè)元素评架,比如 splice(0, 2)會(huì)刪除前兩個(gè)元素。
    • let removed_delete = splice_colors.splice(0,1); // 刪除功能
  • 第二種方法 插入功能
  • 需要給 splice()傳 3 個(gè)參數(shù)
    • 第一個(gè)元素是開始位置炕泳、第二個(gè)要?jiǎng)h除元素的數(shù)量纵诞、第三個(gè)要插入的元素(可以插入的任意多個(gè)元素)
    • 可以在數(shù)組中指定的位置插入元素。 第三個(gè)參數(shù)之后還可以傳第四個(gè)培遵、第五個(gè)參數(shù)浙芙,乃至任意多個(gè)要插入的元素登刺。
    • 比如,splice(2, 0, "red", "green")會(huì)從數(shù)組位置 2 開始插入字符串"red"和"green"嗡呼。
    • splice_colors.splice(1, 0, "yellow", "orange"); // 插入功能
  • 第三種方法 替換功能
  • 同樣要傳入 3 個(gè)參數(shù)
    • 第一個(gè)元素是開始位置纸俭、第二個(gè)要?jiǎng)h除元素的數(shù)量、第三個(gè)要插入的元素(可以插入的任意多個(gè)元素)
    • 要插入的元素?cái)?shù)量不一定跟刪除的元素?cái)?shù)量 一致
    • 比如南窗,splice(2, 1, "red", "green")會(huì)在位置 2 刪除一個(gè)元素揍很,然后從該位置開始向數(shù)組中插入"red"和"green"。
    • splice_colors.splice(1, 2, "red", "purple"); // 插入兩個(gè)值万伤,刪除兩個(gè)元素

注意:這種方法會(huì)改變?cè)紨?shù)組窒悔。

pop

該方法用于刪除數(shù)組的最后一項(xiàng),同時(shí)減少數(shù)組的length 值敌买,返回被刪除的項(xiàng)

unshift

let pop_arr = [1, 4, 5, 7, 3]

 let item_pop = pop_arr.pop();
console.log('item_pop', item_pop) // 3

該方法在數(shù)組開頭添加任意多個(gè)值简珠,然后返回新的數(shù)組長度

let unshift_arr = new Array();

let unshift_item = unshift_arr.unshift(1,2,34)
console.log('unshift_arr---------', unshift_arr) // 1,2,34
console.log('unshift_item長度---------', unshift_item)  //  3

shift

該方法會(huì)刪除數(shù)組的第一項(xiàng)并返回它刪除的一項(xiàng)

let shift_arr = [1, 4, 5, 7, 3];

let shift_item = shift_arr.shift();
console.log('shift_arr--------', shift_arr) // 4,57,3
console.log('shift_item---------', shift_item) //  1

push

該方法接收任意數(shù)量的參數(shù),并將它們添加到數(shù)組末尾虹钮,返回?cái)?shù)組的最新長度

let push_arr = [1, 4, 5, 7, 3]

let push_item = push_arr.push({demo:123})
console.log('push_item--------', push_item)  // 數(shù)組長度 為6
console.log('push_arr--------', push_arr)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末聋庵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子芜抒,更是在濱河造成了極大的恐慌珍策,老刑警劉巖托启,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宅倒,死亡現(xiàn)場離奇詭異,居然都是意外死亡屯耸,警方通過查閱死者的電腦和手機(jī)拐迁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疗绣,“玉大人线召,你說我怎么就攤上這事《喟” “怎么了缓淹?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長塔逃。 經(jīng)常有香客問我讯壶,道長,這世上最難降的妖魔是什么湾盗? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任伏蚊,我火速辦了婚禮,結(jié)果婚禮上格粪,老公的妹妹穿的比我還像新娘躏吊。我一直安慰自己氛改,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布比伏。 她就那樣靜靜地躺著胜卤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪凳怨。 梳的紋絲不亂的頭發(fā)上瑰艘,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音肤舞,去河邊找鬼紫新。 笑死,一個(gè)胖子當(dāng)著我的面吹牛李剖,可吹牛的內(nèi)容都是我干的芒率。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼篙顺,長吁一口氣:“原來是場噩夢啊……” “哼偶芍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起德玫,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤匪蟀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后宰僧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體材彪,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年琴儿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了段化。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡造成,死狀恐怖显熏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晒屎,我是刑警寧澤喘蟆,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站鼓鲁,受9級(jí)特大地震影響蕴轨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜坐桩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一尺棋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦膘螟、人聲如沸成福。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奴艾。三九已至,卻和暖如春内斯,著一層夾襖步出監(jiān)牢的瞬間蕴潦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來泰國打工俘闯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留潭苞,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓真朗,卻偏偏與公主長得像此疹,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子遮婶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容