26数组

2017-12-15  本文已影响6人  joker731

数组Array

第二种用法用new,其实加不加new对于Array来说没有区别

规律

终极问题,什么是数组?

数组实际上还是对象,他只是有特殊原型链的对象.

var a = Array()
for (let i;i<3;i++){
console.log(a[i])
}
a.xxx = 'xxx'
console.log(a)// (3)[1,2,3,xxx:'xxx'] 括号里面是3,是因为JavaScript中的对象,将非数字选择性遍历就是数组.所以它是3 忽略了xxx,不是4
////////////////////////////////////
for(let key in a){
console.log(key)
}
这时候就是全部遍历,这就是对象. 数组就是对象,JavaScript在实现的过程中就是利用选择性遍历来实现区分的. 数组和对象的区别在于指向的原型不一样,拥有不用的公有属性.

数组常用的API

数组的第一个API forEach(//遍历函数)

forEach函数的源码:
obj.forEach = function (x){
for(let i =0 ; i<array.lengh;i++){
x(array[i],i)
}
}
///////////////////////////////////////////////////////////////
function (x) {
for(let i = 0 ; i<this.length;i++){
x(this[i],i)
}

结论是,forEach的源代码是通过this 把调用这个forEach()函数的参数传进去的.

数组除了forEach 还有 sort()属性,sort 属性是用来排序的//

a.sort(function (x,y){return x-y}) 就是从小到大的排序
a.sort(function (x,y){return y-x}) 就是从大到小的排序
sort会改变原来的数组
只有这两种,用的时候不用记,就两种试试就好了
在JavaScript虽然排序是木桶排序算法快,可是木桶内存太大.所以基本都是用快速排序实现排序.

箭头函数的使用a.map(value=>value*2)


方法一览

上一篇 下一篇

猜你喜欢

热点阅读