JavaScript數(shù)組拓展(js數(shù)組form, of, copyWithin, find, fill, includes方法介紹)

Array.from

Array.from 方法用于將兩類(lèi)對(duì)象轉(zhuǎn)為真正的數(shù)組類(lèi)似數(shù)組的對(duì)象(所謂類(lèi)似數(shù)組的對(duì)象,本質(zhì)特征只有一點(diǎn),即必須有l(wèi)ength屬性。因此,任何有l(wèi)ength屬性的對(duì)象,都可以通過(guò)Array.from方法轉(zhuǎn)為數(shù)組) 和 可遍歷的對(duì)象(ES6新增的數(shù)據(jù)結(jié)構(gòu) Set和Map)

在ES5模式的時(shí)候我們一般將一個(gè)類(lèi)數(shù)組變成一個(gè)數(shù)組的做法是

     var arrayLike = {'0':'a','1':'b','2':'c',length:3};     
     var arr1 = Array.prototype.slice.call(arrayLike);

但在ES6中給我們提供了一個(gè)新的方法就是Array.from()

     var arrayLike = {'0':'a','1':'b','2':'c',length:3}; 
     var arr2 = Array.from(arrayLike);

第二個(gè)參數(shù)

Array.from()還支持第二個(gè)參數(shù), 作用為類(lèi)似于數(shù)組的map方法, 用來(lái)對(duì)每個(gè)元素進(jìn)行處理然后放入返回的數(shù)組之中.

var arr1 = [1,2,3];
var arr2 = Array.from(arr1, function(value, index, arr){
    return value+10;
});
console.log(arr2);//11 12 13

Array.of

由于在ES5的時(shí)候, 使用構(gòu)造方法即new Array(), 無(wú)法創(chuàng)建單元素的數(shù)組, Array.of彌補(bǔ)了這一點(diǎn).

var arr = new Array(3);
console.log(arr);//[undefined * 3]

var arr1 = Array.of(3);
console.log(arr1);//[3]

var arr2 = Array.of(1,2,3);
console.log(arr2);//[1,2,3];

數(shù)組實(shí)例的copyWithin()

數(shù)組實(shí)例的copyWithin方法 在當(dāng)前數(shù)組內(nèi)部,將指定位置的成員復(fù)制到其他位置(會(huì)覆蓋原有成員),然后返回當(dāng)前數(shù)組。也就是說(shuō),使用這個(gè)方法,會(huì)修改當(dāng)前數(shù)組。

參數(shù)介紹:

名稱(chēng) 功能
target(必需) 從該位置開(kāi)始替換數(shù)據(jù)。
start(可選) 從該位置開(kāi)始讀取數(shù)據(jù),默認(rèn)為0。如果為負(fù)值,表示倒數(shù)。
end(可選) 到該位置前停止讀取數(shù)據(jù),默認(rèn)等于數(shù)組長(zhǎng)度。如果為負(fù)值,表示倒數(shù)

例:

     var arr = [1,2,3,4,5,6,7,8,9];
     arr.copyWithin(0,3,6);  
     console.log(arr);//4,5,6,4,5,6,7,8,9

find( )

數(shù)組實(shí)例的find方法,用于找出第一個(gè)符合條件的數(shù)組成員。它的參數(shù)是一個(gè)回調(diào)函數(shù),所有數(shù)組成員依次執(zhí)行該回調(diào)函數(shù),直到找出第一個(gè)返回值為true的成員,然后返回該成員。如果沒(méi)有符合條件的成員,則返回undefined

     var arr = [1,5,10,15];
     var num = arr.find(function(value,index,arr) {
           return value > 9;
     });
     alert(num);//10

findIndex( )

數(shù)組實(shí)例的findIndex方法的用法與find方法非常類(lèi)似,返回第一個(gè)符合條件的數(shù)組成員的位置,如果所有成員都不符合條件,則返回-1。

     var index = arr.findIndex(function (value, index, arr) {
        return value > 9;
     })
     alert(index);//2

fill( )

fill方法使用給定值,填充一個(gè)數(shù)組。

     var arr = ['a','b','c'];
     alert(arr.fill(7));//7,7,7     
     alert(new Array(3).fill(7));//7,7,7     

     // fill方法還可以接受第二個(gè)參數(shù)和第三個(gè)參數(shù),用于指定填充的起始位置和結(jié)束位置 下面代碼表示,fill方法從1號(hào)位開(kāi)始,向原數(shù)組填充7,到5號(hào)位之前結(jié)束。
     console.log(new Array(8).fill(7,1,5));//(8) [undefined × 1, 7, 7, 7, 7, undefined × 3]

includes( )

Array.prototype.includes方法返回一個(gè)布爾值,表示某個(gè)數(shù)組是否包含給定的值.

在ES5我們查找一個(gè)數(shù)組是否含有某個(gè)元素時(shí), 使用的是indexOf( )方法.

var arr = [1,2,3,4,NaN];
console.log(arr.indexOf(2));//輸出: 1

console.log(arr.indexOf(NaN));//輸出: -1;
//原因: 在系統(tǒng)底層indexOf是循環(huán)遍歷arr數(shù)組采用'==='絕對(duì)等于來(lái)判斷是否含有該元素.

console.log(arr.includes(1))//輸出: true

console.log(arr.include(NaN))//輸出: true
最后編輯于
?著作權(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),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.Array.from Array.from方法用于將兩類(lèi)對(duì)象轉(zhuǎn)為真正的數(shù)組:類(lèi)似數(shù)組的對(duì)象(array-lik...
    趙然228閱讀 738評(píng)論 0 0
  • 三,字符串?dāng)U展 3.1 Unicode表示法 ES6 做出了改進(jìn),只要將碼點(diǎn)放入大括號(hào),就能正確解讀該字符。有了這...
    eastbaby閱讀 1,672評(píng)論 0 8
  • 刀 怒斬雪翼雕 山 豪邁沖云霄 火 翻騰再燃燒 海 掀起萬(wàn)丈濤 風(fēng) 吹不過(guò)云煙 花 飄不過(guò)天邊 雪 滴落在心間 月...
    小富哥閱讀 4,979評(píng)論 0 0
  • 粗糧含有豐富的不可溶性纖維素,有利于保障消化系統(tǒng)正常運(yùn)轉(zhuǎn)。它與可溶性纖維協(xié)同工作,可降低血液中低密度膽固醇和甘油三...
    米克先生閱讀 353評(píng)論 1 1
  • Showing /Users/lvchengbo/jdstore/app/views/common/_navbar...
    大貓城堡閱讀 216評(píng)論 0 0

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