什么是数组
数组是按次序排列的一组值/
JS中的数组就是由Array构造的对象

所有数组都有共有对象
var a=[1,2,3]
obj={
0:1
1:2
2:3
length:3
}
数组构造的对象与obj构造的对象 指向的共用属性不同 (原型链不同)

遍历数组/对象
故意不去访问非数字的下标
觉得是数组就用这种 下标都是数字
遍历所有的key
觉得不是数组就用这种 下标不确定

伪数组
原型链中没有Array.prototype这一环的数组 没有.push 方法
JS中只有一个伪数组 arguments
声明一个函数f 内置一个arguments变量
传入参数
打印arguments _ _proto_ _:0bject

数组的API
forEach()

拆解


在执行时候 接收到了y('hello')中的'hello参数' 然后打印出这个参数 这个函数接收一个函数 接受的这个函数必须接受一个参数这个参数的值 要看另外一个函数的源代码才知道

a.forEach
a.forEach(函数(函数的参数Value,函数的key){})

数组的本质下划线__proto__ 指向array.prototype的对象 就是数组 如果没有array.prototype 就不是数组
a.sort
a.sort(函数(参数1,参数2){参数1-参数2})


a.join()

a.concat()

a.map()
功能与forEach一样 但是 a.map() 有返回值

a.filter() 过滤

a.filter() a.map() 组合使用

a.reduce 求和/压缩

map 可以用reduce 表示

reduce 表示 filter

示例
#分数从高到低排序#
var students=['小明','小红','小花']
var scores={小明:59
小红:99
小花:80
}
scource.sort(scoures[y]-sources-[x])
##1.获得所有偶数##
##2.获取所有偶数的平方##
var a=[1,2,3,4,5,6,7,8]
a.filter(function(value,key){
return value%2===0
}).map(function(value){return*2})
##计算所有基数的和##
var a=[1,2,3,4,5,6,7,7,5,6666,311]
a.reduce(function(arr,n){
if(n%2===0){
arr+=n
}
return arr
},0)



