JavaScript数组简述

数组每一项可以保存任何类型的数据,大小是可以动态调整的,随数据添加自动增长length,当然你非要自己增长length也是可以的,不过你可能就会面临n个undefined的骚扰了。

构造:Array构造函数:new Array() new可省略  括号内为length或content

字面量法:[]    括号内为content,类型任意

二维数组:[[]]  1.直接字面量构造   2.直接令一维数组元素为数组

稀疏数组:length与数组元素个数不同   数组中间元素为全部定义,即有部分元素为undefined

方法:

检测   

Array.isArray()   参数为你要检测的数组,返回值为boolean

var a = [];
Array.isArray(a)  // true


转换  

toString() toLocaleString() valueOf()    默认以逗号为分隔符的形式返回字符串  

join()接收参数为用作分隔符的字符串,返回包含所有数组项的字符串   默认参数逗号


栈队列

push()数组末尾添加任意项     返回长度   unshift()数组前端添加任意项      返回长度

pop()数组末尾移除一项   返回移除项        shift()数组第一项移除     返回移除项 


var a = [1,2,3,4];    
a.push(5)           // 5
a.unshift(-1, 0)    // 7
a.pop()             // 5
a.shift()           // -1


排序  

reverse() 反转指定数组顺序  

sort(function(a,b){ return a-b; })升序排列  (参数分别为数组前一项和后一项值)


var a = [1,4,6,3,2];

a.sort(function(a, b){
	return a-b
})    // [1, 2, 3, 4, 6]

a.sort(function(a, b){
	return b - a
})    // [6, 4, 3, 2, 1]


操作  

contact() 为数组添加任意项,即将参数与this连接起来   (参数可以为任意单独项,同时可以为数组)

slice()创建新数组 参数为起始位置和终止位置(不包括) 不会修改原函数


var a = [6, 4, 3, 2, 1];

a.slice(1,3)
// (2) [4, 3]


splice()向数组中部插入任意项 参数为起始位置,作用项数(可以为零即不改变原数组项),要插入项(可选)   返回删除项数组    会修改原函数


位置  

indexOf() lastIndexOf() 从开头或末尾查找 返回位置即索引 参数为要查找的项和起点位置

迭代  every() some() 对所有项进行函数,返回一个布尔值    every的结果为每项迭代的并   some为每项迭代的或   

map()对所有项进行函数 返回新数组    参数为 当前遍历项  索引  整个数组

filter()运行给定函数筛选 返回新数组  

forEach()与map相同 但无返回值


归并  

reduce() reduceRight() 从开头或末尾迭代所有项 参数为函数和初始值

函数参数为 上一项值 当前值  索引值  整个数组对象

返回值由作为参数的函数的return决定


var a = [1,2,3]
a.reduce(function(pre, item, index, arr){
	return pre + item
})
// 6


另外ES6新增许多更强大的数组方法,如Array.from()  Array.from includes copyWithin  find fill等等,详情请看ES6揭秘之数组

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值