數(shù)組Array類型
數(shù)組擴(kuò)展的方法之類方法
from(array):
from(array)可以將偽數(shù)組以及帶有Symbol.iterator這個(gè)函數(shù)的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為真正的數(shù)組。
var object= {
"0" : "A",
"1" : "b",
"length" : 2
}
var arr = Array.from(object);
console.log(arr); // ["A","b"]
from(array,val=>...表達(dá)式):
并且可以通過第二個(gè)參數(shù)對(duì)要變成數(shù)組存儲(chǔ)的值進(jìn)行處理。
var object= {
"0" : "A",
"1" : "b",
"length" : 2
}
var arr = Array.from(object,x=>x+':值');
console.log(arr); // ["A:值", "b:值"]
Array.of(...)
( )中的參數(shù)用,隔開所返回的是一個(gè)新實(shí)例的數(shù)組
var arr = Array.of(1,3,5);
console.log(arr);
copyWithin(index,str,end)
index:要覆蓋的元素坐標(biāo)。
str:開始替換的起始坐標(biāo), 默認(rèn)值為0,如果為負(fù)數(shù),則為倒數(shù)
end:在哪個(gè)位置停止復(fù)制,默認(rèn)為數(shù)組長度,負(fù)數(shù)為倒數(shù),注意的是如果想在坐標(biāo)為4的地方停止那么這個(gè)值要寫5
var arr = [1, 2, 3, 4, 5].copyWithin(0, 2 ,3);
console.log(arr); // [3, 2, 3, 4, 5]
var arr = [1, 2, 3, 4, 5].copyWithin(1, 2 ,5)
console.log(arr); // [1, 3, 4, 5, 5]
var arr = [1, 2, 3, 4, 5].copyWithin(2, 2 ,4)
console.log(arr); // [1, 2, 3, 4, 5]
var arr = [1, 2, 3, 4, 5].copyWithin(3, 2 ,3)
console.log(arr); // [1, 2, 3, 3, 5]
數(shù)組擴(kuò)展的方法之實(shí)例方法
find(function(val, index,arr){})
找到第一個(gè)符合條件的元素,如果找不到返回undefined,傳入的函數(shù)中,有3個(gè)形參,分別是val遍歷的元素,index遍歷的下標(biāo),arr數(shù)組本身
// 第一個(gè)例子
var b = [1, 4, 33, 10].
find(function (val,index,arr) {
if(index == 1){
return val;
}
});
console.log(b); // 4
// 第二個(gè)例子
var b = [1, 4, 33, 10].find((val,index,arr) => index!=0 && index%3 == 0);
console.log(b); // 10
findIndex(function(val, index,arr){})
同find(function(val, index,arr){})不同的是這個(gè)方法找到的是第一個(gè)符合的元素下標(biāo)。其他參數(shù)一致
// 第一個(gè)例子
var b = [1, 4, 33, 10].findIndex(function (val,index,arr) {
if(val == 1){
return val;
}
});
console.log(b); // 0
// 第二個(gè)例子
var b = [1, 4, 33, 10].findIndex((val,index,arr) => val!=1);
console.log(b); // 1
fill(content,str,end)
填充數(shù)組元素的方法,content第一個(gè)參數(shù)是要填充的內(nèi)容,第二個(gè)參數(shù)str 是起始的下標(biāo),第三個(gè)參數(shù)end是結(jié)束的下標(biāo),第二個(gè)第三個(gè)參數(shù)都是可選的參數(shù)。
var b = [1, 4, 33, 10].fill("js");
console.log(b); // ["js", "js", "js", "js"]
var b = [1, 4, 33, 10].fill("js",1);
console.log(b); // [1, "js", "js", "js"]
var b = [1, 4, 33, 10].fill("js",1,3);
console.log(b); // [1, "js", "js", 10]
keys()
返回ArrayIterator 數(shù)據(jù)類型可以遍歷所有內(nèi)容都是原先數(shù)組的key也就是下標(biāo)。
var b = [1,2].keys();
for (let index of b){
console.log(index); // 0,1
}
console.log(b) // ArrayIterator
values()
返回ArrayIterator 數(shù)據(jù)類型可以遍歷所有內(nèi)容都是原先數(shù)組的內(nèi)容(**不清楚為什么這個(gè)方法并不生效暫時(shí)轉(zhuǎn)換后的效果可能并不好暫時(shí)不要使用)
entries()
返回ArrayIterator 數(shù)據(jù)類型可以遍歷所有內(nèi)容都是原先數(shù)組的下標(biāo)和內(nèi)容的集合。
var b = ['j', 's'].entries();
for (let [index, val] of b) {
console.log(index, val); // [0,'j'],[1,'s']
}
console.log(b) // ArrayIterator
includes(val,index)
檢測(cè)數(shù)組中是否有這個(gè)內(nèi)容,第二個(gè)參數(shù)是從第幾個(gè)下標(biāo)開始進(jìn)行判斷。
var b = ['j','s'];
console.log(b.includes('j')) // true
console.log(b.includes('s')) // true
console.log(b.includes('j',0)) // true
console.log(b.includes('s',2)) // false