国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

類數組轉換為數組的方法

JiaXinYi / 3366人閱讀

摘要:方法的內部實現使用之后指向了類數組對象一個通用的轉換函數是中新增的方法,可以將兩類對象轉為真正的數組類數組對象和可遍歷對象包括新增的數據結構和。

1、Array.prototype.slice.call()
這種方法是借用了數組原型中的slice方法,返回一個數組。slice方法的內部實現:

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

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

}

一個通用的轉換函數:

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中新增的方法,可以將兩類對象轉為真正的數組:類數組對象和可遍歷(iterable)對象(包括ES6新增的數據結構Set和Map)。

var arrayLike = {

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

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

console.log(p);

});
//轉換arguments對象為數組
function foo(){

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

}
//只要是部署了Iterator接口的數據結構,Array.from都能將其轉換為數組
Array.from("hello"); //["h","e","l","l","o"]

3、擴展運算符(…)
同樣是ES6中新增的內容,擴展運算符(…)也可以將某些數據結構轉為數組

//arguments對象的轉換
function foo(){

var args = [...arguments];

}
//NodeList對象的轉換
[...document.querySelectorAll("p")]

擴展運算符實際上調用的是遍歷器接口,如果一個對象沒有部署此接口就無法完成轉換

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/96106.html

相關文章

  • 數組對象轉換數組對象簡單理解

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

    wayneli 評論0 收藏0
  • JavaScript數組

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

    HtmlCssJs 評論0 收藏0
  • 第17部分_反射機制

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

    trilever 評論0 收藏0
  • 排名前16Java工具

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

    android_c 評論0 收藏0
  • 干貨:排名前16Java工具

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

    nanchen2251 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<