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 ]
相关文章
相关标签/搜索