Array

190 阅读2分钟

什么是数组

数组是按次序排列的一组值/ 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)