您好,登錄后才能下訂單哦!
一、find()是一個查找回調函數(shù),用來查找目標元素,找到數(shù)組中符合當前搜索規(guī)則的第一個元素,返回它,并且終止搜索。找不到返回undefined。
查找函數(shù)有三個參數(shù)。
value:每一次迭代查找的數(shù)組元素。
index:每一次迭代查找的數(shù)組元素索引。
arr:被查找的數(shù)組。
[1, 2, 3, 4].find((value, index, arr) => {
return value > 3
}) //4
[1,2,3,4].find(value =>typeof value > 4) //undefined
二、findIndex()是一個查找回調函數(shù),用來查找目標元素,找到數(shù)組中符合當前搜索規(guī)則的第一個元素,返回它的下標,終止搜索。找不到就返回-1。
查找函數(shù)有三個參數(shù)。
value:每一次迭代查找的數(shù)組元素。
index:每一次迭代查找的數(shù)組元素索引。
arr:被查找的數(shù)組。
[1, 2, 3, 4].findIndex((value, index, arr) => {
return value > 3
}) //3
[1,2,3,4].findIndex(value =>typeof value > 4) //-1
三、fill()是一個替換函數(shù),用新元素替換掉數(shù)組內的元素,可以指定替換下標范圍。
value:填充值。
start:填充起始位置,可以省略。
end:填充結束位置,可以省略,實際結束位置是end-1。
arr.fill(value, start, end)
[1,2,3,4,5].fill(7, 1, 3); //[1,7,7,7,5]
四、copyWithin()是一個復制函數(shù),在當前數(shù)組內部,將指定位置的成員復制到其他位置(會覆蓋原有成員),然后返回當前數(shù)組。也就是說,使用這個方法,會修改當前數(shù)組。
target (必需):從該位置開始替換數(shù)據(jù)。
start (可選):從該位置開始讀取數(shù)據(jù),默認為 0 。如果為負值,表示倒數(shù)。
end (可選):到該位置前停止讀取數(shù)據(jù),默認等于數(shù)組長度。如果為負值,表示倒數(shù)。
arr.copyWithin(target, start = 0, end = this.length)
[1, 2, 3, 4, 5].copyWithin(0, 3, 4); 、 [1, 2, 3, 4, 5].copyWithin(0, -2, -1);
//[4,2,3,4,5]將3號位復制到0號位
五、push()方法可向數(shù)組的末尾添加一個或多個元素,并返回新的長度。
let arr = [1,2,3];
var les = arr.push('a');
//arr = [1,2,3,'a']
//les = 4
六、unshift()方法是向數(shù)組的開頭添加一個或多個元素,并且返回新的長度。
let arr = Array.of(1,2,3);
let res = arr.unshift('a');
//arr = ['a', 1, 2, 3] 、res = 4
七、pop()方法用于刪除并返回數(shù)組的最后一個元素。如果數(shù)組是空的,pop()方法將不進行任何操作,返回undefined的值。
let arr = ['a','b','c'];
let resEle = arr.pop();
//arr = [ 'a',' b' ] 、resEle = c
八、shift()方法用于刪除并返回數(shù)組的第一個元素。如果數(shù)組是空的,shift()方法將不進行任何操作,返回undefined的值。
let arr = ['a','b','c'];
let res = arr.shift();
//arr = ['b','c'] 、res = a
九、concat()方法用于連接兩個或多個數(shù)組。該方法不會改變現(xiàn)有的數(shù)組,而僅僅會返回被連接數(shù)組的一個副本。
let arr = [1,2,3];
let arr2 = [1,2,3];
let resArr = arr.concat(arr2);
//arr = [1,2,3] 、arr2 = [1,2,3] 、resArr = [1,2,3,1,2,3]
十、join()方法用于把數(shù)組中的所有元素放入一個字符串。元素是通過指定的分隔符進行分隔的。
let arr = [1,2,3];
let resStr = arr.join(",");
//arr = [ 1, 2, 3 ] 、resStr = 1,2,3
十一、sort()方法用于對數(shù)組的元素進行排序。
排序不是按整型大小,而是字符串對比,取第一個字符的ANSI碼對比,小的排前面,相同的話取第二個字符再比:
let arr = Array.of(3, 11, 8);
let res = arr.sort();
//arr = [ 11, 3, 8 ] 、res = [11, 3, 8]
要按整型數(shù)值比較,可以這樣:
let arr = Array.of(3, 11, 8);
let res = arr.sort((a, b) => a - b);
//arr = [ 3, 8, 11 ] 、res = [3, 8, 11]
十二、reverse()方法用于顛倒數(shù)組中元素的順序。
let arr = Array.of(3, 11, 8, 9);
let res = arr.reverse();
//arr = [ 9, 8, 11, 3 ] 、res = [9, 8, 11, 3]
十三、Array.of()與Array()的異同,生成數(shù)組,當傳入單個參數(shù)時,Array()的行為表現(xiàn)的不統(tǒng)一。Array.of的行為很統(tǒng)一。
Array.of() // []
Array.of(3) // [ 3 ]
Array.of(3, 11, 8) // [ 3, 11, 8 ]
Array.of(undefined) // [undefined]
Array() // []
Array(3) // [ , , ]
Array(3, 11, 8) // [ 3, 11, 8 ]
十四、splice()方法用于刪除元素/添加新元素。
函數(shù)有三個參數(shù):
start: 開始操作的索引
deleteCount:要移除的數(shù)組元素的個數(shù)
item:要添加進數(shù)組的元素,如果不指定,則splice只刪除數(shù)組元素
array.splice(start,deleteCount,item);
十五、slice()方法用于復制數(shù)組元素到新數(shù)組。
函數(shù)有二個參數(shù):
start: 開始操作的索引
end:結束操作的索引
注:start <= newArray < end
array.slice(start, end)
let arr = Array.of(1,2,3,4,5);
let res = arr.slice(1,3);
//arr = [1,2,3,4,5] 、res = [2,3]
十六、includes()方法用于從一維數(shù)組或字符串中查找某指定的值,如果有,則返回true,否則false。
方法有二個參數(shù):
value:查找的值
start(可選):開始向后查詢的索引,
arr.includes(value, start);
十七、startsWith()方法用于從字符串中正序查找某指定的值,如果有,則返回true,否則false。
方法有二個參數(shù):
walue:查找的值
start(可選):開始向后查詢的索引
arr.startsWith(value,start);
十八、endsWith()方法用于從字符串中倒序查找某指定的值,如果有,則返回true,否則false。
方法有二個參數(shù):
value:查找的值
end(可選):開始向前查詢的索引(倒序的索引)
arr.endsWith(value,end);
十九、indexOf()方法用于從一維數(shù)組或字符串中查詢某指定的值,如果有,則返回元素所在索引,否則返回-1。
方法有二個參數(shù):
value:查找的值
start(可選):開始查詢的索引位置(默認正序查詢,負值倒序查詢)
arr.indexOf(value,start);
二十、lastIndexOf()方法用于從一維數(shù)組或字符串中倒序查詢某指定的值,如果有,則返回元素所在索引,否則返回-1。
方法有二個參數(shù):
value:查詢的值
start(可選):開始查詢的索引位置(倒序索引位置)
arr.lastIndexOf(value,start);
二一、forEach()方法用于遍歷數(shù)組。
函數(shù)有三個參數(shù):
value:表示當前項的值,
key:表示當前索引,
item:表示數(shù)組本身
array.forEach((value, key, item) => {})
二二、every()和 some()方法用于確定數(shù)組的所有成員是否滿足指定的測試。
every()一假即假,必須所有都返回true才會返回true;
some()一真即真,只要其中一個為true 就會返回true ;
方法有三個參數(shù):
value:表示當前項的值;
key:表示當前的索引;
item:表示數(shù)組本身
const arr = [
{name:"Apple",ram:8},
{name:"IBM",ram:4},
{name:"Acer",ram:32},
];
var result= arr.every((value,key,item) => {
return value.ram > 16
}) //false;
var some = arr.some((value,key,item) => {
return value.ram > 16
}) //true
let和const都能夠聲明塊級作用域,都是在當前塊內有效,執(zhí)行到塊外會被銷毀,也不存在變量提升(TDZ)。
let的特點是不會變量提升,而是被鎖在當前塊中。
const 聲明常量,一旦聲明,不可更改,而且常量必須初始化賦值。 const雖然是常量,不允許修改默認賦值,但如果定義的是對象Object,那么可以修改對象內部的屬性值。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。