偽陣列轉換為真正的陣列

2022-07-27 11:00:17 字數 802 閱讀 9886

如何將偽陣列轉換為真正的陣列深入解析

常見的偽陣列:argument、通過document.getelements獲取到的內容

偽陣列具有length屬性,也是乙個乙個的元素組成,但構造器不是array,不能使用陣列的方法

轉換陣列的方法:

1.通過遍歷將偽陣列裡元素放入到乙個新的陣列裡

let arg = arguments

let arr =

for(var i = 0;i < arg.length;i ++)

通過call改變陣列slice方法裡的this指向

乙個陣列都是由它的構造器例項化出來的,var a = ;正規的用法:var a = new array()因為array是乙個建構函式,每乙個建構函式都有原型,且建構函式構造出來的例項可以使用原型上的方法,也就是說因為array的原型上有一些方法,所以每乙個陣列都可以使用array原型上的push等方法

因為偽陣列的構造器不是array,當然不能使用array原型上的push方法 

現在陣列有乙個方法slice,這個方法每次都會返回乙個新陣列,如果不傳參的話,返回的新陣列的元素和原陣列的元素是一模一樣的

讓乙個真正的陣列直接從array.prototype上執行slice方法,但是在「」裡面的this換成咱們的偽陣列,這樣的話,就會返回乙個元素和偽陣列元素一樣的真正陣列了

array.prototype.slice = function()

return arr

}let arr = .slice.call(arg)

array.prototype.slice.call(arg)

類陣列轉換為陣列的方法

1 array.prototype.slice.call 這種方法是借用了陣列原型中的slice方法,返回乙個陣列。slice方法的內部實現 array.prototype.slice function start,end return result 乙個通用的轉換函式 var toarray fu...

類陣列轉換為陣列的方法

1 array.prototype.slice.call 這種方法是借用了陣列原型中的slice方法,返回乙個陣列。slice方法的內部實現 array.prototype.slice function start,end var result newarray start start 0 end ...

偽陣列轉換真陣列的方法

宣告乙個空陣列,通過遍歷將他們新增到新的陣列中去 1 這個比較簡單就不舉例子啦 var arr array.prototype.slice.call oldarr 使用原型繼承 oldarr.proto array.prototype es6的陣列新方法array.from var arr arra...