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)