Array
1. length属性
length
属性是一个0到2的32次方减1的整数,length
并不表示数组中定义值的个数,比如说:
let arr = [1,2,3,4]
arr.length = 5
for( let key of arr) {
console.log(key )
}
//结果
1
2
3
4
undefined
利用数组的length
属性可以截断数组,比如:
let numbers = [1,2,3,4,5]
numbers.length = 4
for (let key of numbers) {
console.log(key)
}
// 结果
1
2
3
4
2. Array.prototype
Array.prototype
表示Array
构造函数的原型,并可以向所有Array
对象添加新的属性和方法,比如添加一个新方法,返回这个数组的第一个元素的方法
if (!Array.prototype.first) {
Array.prototype.first = () =>{
return this[0]
}
}
实际上Array
实例继承自Array.prototype
,与所有的构造函数一样,我们可以更改构造函数的原型对象,对Ayyay
实例进行更改。
Array.prototype
本身也是一个Array
Array.isArray(Array.prototype) // true
3. method
3.1 Array.from()
Array.from()
方法是伪数组或可迭代的对象(包括arguments Array,Map,Set,String...)装换成数组对象 如:
let str = 'dfasdf'
console.log( Array.from(str) )
//结果
[ 'd', 'f', 'a', 's','d', 'f']
Array.from()
方法可以传三个参数
Array.from(arrayLike, mapFn, thisArg)
arrayLike: 要装换的伪数组或可迭代的对象
mapFn : 可选参数,新数组中的每个元素都会执行这个函数
thisArg : 可选参数,执行回调函数时的this
对象
let str = '234234324987877'
Array.from(str, (item) => {
if(parseInt(item) > 5) {
console.log(item)
}
})
// 结果
9
8
7
8
7
7
3.2 Array.isArray()
Array.isArray()
用于确定传递的值是否是个Array
如果传递的对象是一个Array
则返回true
, 否则 false
网友评论