成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

類數(shù)組轉(zhuǎn)換為數(shù)組的方法

JiaXinYi / 3427人閱讀

摘要:方法的內(nèi)部實(shí)現(xiàn)使用之后指向了類數(shù)組對(duì)象一個(gè)通用的轉(zhuǎn)換函數(shù)是中新增的方法,可以將兩類對(duì)象轉(zhuǎn)為真正的數(shù)組類數(shù)組對(duì)象和可遍歷對(duì)象包括新增的數(shù)據(jù)結(jié)構(gòu)和。

1、Array.prototype.slice.call()
這種方法是借用了數(shù)組原型中的slice方法,返回一個(gè)數(shù)組。slice方法的內(nèi)部實(shí)現(xiàn):

Array.prototype.slice = function(start,end){

  var result = new Array();  
  start = start || 0;  
  end = end || this.length; //使用call之后this指向了類數(shù)組對(duì)象
  for(var i = start; i < end; i++){  
       result.push(this[i]);  
  }  
  return result;  

}

一個(gè)通用的轉(zhuǎn)換函數(shù):

var toArray = function(s){

try{  
    return Array.prototype.slice.call(s);  
} catch(e){  
        var arr = [];  
        for(var i = 0,len = s.length; i < len; i++){   
             arr[i] = s[i];   
        }  
         return arr;  
} 

2、Array.from()
Array.from()是ES6中新增的方法,可以將兩類對(duì)象轉(zhuǎn)為真正的數(shù)組:類數(shù)組對(duì)象和可遍歷(iterable)對(duì)象(包括ES6新增的數(shù)據(jù)結(jié)構(gòu)Set和Map)。

var arrayLike = {

"0":"a",
"1":"b",
"2":"c",
length:3

};
var arr = Array.from(arrayLike);//["a","b","c"]
//把NodeList對(duì)象轉(zhuǎn)換為數(shù)組,然后使用數(shù)組的forEach方法
var ps = document.querySelectorAll("p");
Array.from(ps).forEach(p){

console.log(p);

});
//轉(zhuǎn)換arguments對(duì)象為數(shù)組
function foo(){

var args = Array.from(arguments);
//...

}
//只要是部署了Iterator接口的數(shù)據(jù)結(jié)構(gòu),Array.from都能將其轉(zhuǎn)換為數(shù)組
Array.from("hello"); //["h","e","l","l","o"]

3、擴(kuò)展運(yùn)算符(…)
同樣是ES6中新增的內(nèi)容,擴(kuò)展運(yùn)算符(…)也可以將某些數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)為數(shù)組

//arguments對(duì)象的轉(zhuǎn)換
function foo(){

var args = [...arguments];

}
//NodeList對(duì)象的轉(zhuǎn)換
[...document.querySelectorAll("p")]

擴(kuò)展運(yùn)算符實(shí)際上調(diào)用的是遍歷器接口,如果一個(gè)對(duì)象沒有部署此接口就無法完成轉(zhuǎn)換

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/96106.html

相關(guān)文章

  • 數(shù)組對(duì)象轉(zhuǎn)換數(shù)組對(duì)象簡單理解

    摘要:將對(duì)象轉(zhuǎn)換為數(shù)組對(duì)象的限制不知道現(xiàn)在還是否需要考慮這一點(diǎn)之前的版本將實(shí)現(xiàn)為對(duì)象而非對(duì)象,對(duì)象不能直接調(diào)用方法,因此需要采取其他方式轉(zhuǎn)化。 關(guān)于類數(shù)組對(duì)象 JavaScript中有一些著名的類數(shù)組對(duì)象,它們看起來很像數(shù)組: 擁有l(wèi)ength屬性 元素按序保存在對(duì)象中,可以通過索引訪問 但實(shí)際和數(shù)組又不是一回事: 沒有數(shù)組的很多方法 也會(huì)有數(shù)組沒有的方法 (e.g. NodeLis...

    wayneli 評(píng)論0 收藏0
  • JavaScript數(shù)組

    摘要:與稀疏數(shù)組對(duì)立的為密集數(shù)組,密集數(shù)組的索引會(huì)被持續(xù)的創(chuàng)建,并且其元素的數(shù)量等于其長度。創(chuàng)建一個(gè)長度為的數(shù)組,并初始化了個(gè)元素使用構(gòu)造函數(shù)創(chuàng)建數(shù)組對(duì)象的時(shí)候,關(guān)鍵字是可以省略的。另外使用和刪除元素是影響數(shù)組的長度的。 說明:本文只總結(jié)了JavaScript數(shù)組在web端的行為,不包括NodeJs端的行為。本文不涉及類型化數(shù)組(TypedArray)的討論、總結(jié)。 一、什么是數(shù)組 數(shù)組的定...

    HtmlCssJs 評(píng)論0 收藏0
  • 第17部分_反射機(jī)制

    摘要:如果此對(duì)象表示非靜態(tài)上下文中聲明的內(nèi)部類,則形參類型作為第一個(gè)參數(shù)包括顯示封閉的實(shí)例。參數(shù)字段名返回此類中指定字段的對(duì)象拋出如果找不到帶有指定名稱的字段。 一、類的加載 1. 概述 當(dāng)程序要使用某個(gè)類時(shí),如果該類還未被加載到內(nèi)存中,則系統(tǒng)會(huì)通過加載,連接,初始化三步來實(shí)現(xiàn)對(duì)這個(gè)類進(jìn)行初始化 2. 加載 就是指將class文件讀入內(nèi)存,并為之創(chuàng)建一個(gè)Class對(duì)象 任何類被使用時(shí)系統(tǒng)都...

    trilever 評(píng)論0 收藏0
  • 排名前16Java工具

    摘要:在中,工具類定義了一組公共方法,這篇文章將介紹中使用最頻繁及最通用的工具類。另外,工具類,根據(jù)阿里開發(fā)手冊(cè),包名如果要使用不能帶,工具類命名為 在Java中,工具類定義了一組公共方法,這篇文章將介紹Java中使用最頻繁及最通用的Java工具類。以下工具類、方法按使用流行度排名,參考數(shù)據(jù)來源于Github上隨機(jī)選取的5萬個(gè)開源項(xiàng)目源碼。 一. org.apache.commons.io....

    android_c 評(píng)論0 收藏0
  • 干貨:排名前16Java工具

    摘要:在中,工具類定義了一組公共方法,這篇文章將介紹中使用最頻繁及最通用的工具類。另外,工具類,根據(jù)阿里開發(fā)手冊(cè),包名如果要使用不能帶,工具類命名為。 showImg(https://segmentfault.com/img/remote/1460000015356958); 在Java中,工具類定義了一組公共方法,這篇文章將介紹Java中使用最頻繁及最通用的Java工具類。以下工具類、方法...

    nanchen2251 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<