JavaScript之類數組對象和arguments

JavaScript之類數組對象和argumentsjavascript

類數組對象
所謂類數組對象就是擁有一個length屬性和若干個索引屬性的對象
  1. Arguments對象就是一個類數組對象
  2. 一個DOM方法 (document.getElementsByTagName()等)也返回類數組對象
var array = ['name' , 'age' , 'hy'] // 數組

var arrayLike = { // 類數組
    0:'name',
    1:'age',
    2:'hy',
    length:3
}

讀寫

console.log(array[0]) // name
console.log(arrayLike[0]) // name

array[0] = 'ycl'
arrayLike[0] = 'ycl'

長度

console.log(array.length) // 3
console.log(arrayLike.length) // 3

那類數組對象能不能使用數組的方法嗎 ? 好比
arrayLike.push('4’). // arrayLike.push is not a function

 

若是類數組對象想調用數組的方法該怎麼辦 ?
var arrayLike = { // 類數組
    0:'name',
    1:'age',
    2:'hy',
    length:3
}

console.log(Array.prototype.join.call(arrayLike,'&’)). // name&age&hy

console.log(Array.prototype.slice.call(arrayLike)) // [ 'name', 'age', 'hy' ]

console.log(Array.prototype.map.call(arrayLike , function(item){ // [ 'NAME', 'AGE', 'HY' ]
     return item.toUpperCase()
}))

 

類數組轉數組
console.log(Array.prototype.slice.call(arrayLike)).

console.log(Array.prototype.splice.call(arrayLike , 0)). // 會改變原數組

console.log(Array.from(arrayLike)) // es6 Array.from

Arguments對象java

Arguments對象只定義在函數體中,包括了函數的參數和其餘屬性,arguements 代指 函數的Arguments對象
 
使用es6的 …運算符 ,咱們能夠輕鬆轉換爲數組
function func(...arguments){
    console.log(arguments)
}
func(1, 2, 3). // [ 1, 2, 3 ]
相關文章
相關標籤/搜索