JavaScript数组处理方法

JavaScript数组

数组是值的有序集合。每个值叫做一个元素。代表元素在数组中位置的数字称为索引。
数组实际上是特殊的对象,数组的索引是对象的属性名,数组会自动维护小于232 的非负整数作为属性名时的length属性值

创建数组

数组直接量创建

var empty = []; //创建一个空的数组
var empty = [5,4,3,2,1]; //创建一个数组
var empty = [1, ,3]; //中间的省略元素将被赋予undefined
var empty = [ , , , ]; //这里数组长度是3并非4,并且3个元素都是undefined,因为数组直接量的语法会自动省略最后一个逗号后面为空的元素

使用构造函数Array()创建

var empty = new Array();
var empty = new Array(10); //创建一个长度为10的数组
var empty = new Array(5,4,3,2,1); //创建一个数组,等同于var empty = [5,4,3,2,1]

证明数组是特殊的对象

<script>
    var b = [1, 2, 3, 4, 5];
    b[-123] = 112;
    b['test'] = 321
    console.log(b);
    console.log('b.length =' + b.length);
</script>

在这里插入图片描述

数组常用方法

1.join( ) => 将数组元素转换为字符串并拼接

var a = [1,2,3];
a.join(); => “1,2,3”
a.join(’’);=> “123”

2.sort( ) => 将数组中的元素排序(原数组被改变)

当sort()函数中无参时,将根据元素首字母进行排序
var a = [3,4,1];
a.sort(); => [1,3,4]

3.reverse( ) => 将数组元素逆序(原数组被改变)

var a = [1,2,3];
a.reverse() => [3,2,1]

4.length => 查看数组元素长度

var a = [1,2,3,4];
a.length => 4
a.length = 3 => a=[1,2,3]

5.delete =>删除数组中索引对应的元素(原数组被改变)

删除数组中索引对应的元素,但数组长度保持不变,所以会将数组变成稀疏数组
var a = [1,2,3,4];
delete a[2] => a=[1,2,4]

6.concat( ) => 创建并返回一个新数组

a = [1,2,3];
var b = a.concat(1,2); => b = [1,2,3,1,2]

7.slice( ) => 返回指定子数组

slice(开始索引(正数从左计算,负数从右计算),结束索引(正数从左计算,负数从右计算))
var a = [1,2,3,4,5];
var b = a.slice(0,3) => b= [1,2,3]
var b = a.slice(-3) => b=[3,4,5]

8.splice( ) => 在数组中插入和删除元素(原数组被改变)

var a = [1,2,3,4,5,6,7,8];
var b = a.splice(4); => a = [1,2,3,4] b = [5,6,7,8]
a.splice(1,3) => a = [2,3,4]
a.splice(2,0,‘a’)=>a=[1,2,a,3,4,5,6,7,8]

9.push( ) => 在数组尾部添加元素(原数组改变)

var a = [1,2,3];
a.push(1,2) => a=[1,2,3,1,2]

10.pop( ) => 删除元素尾部的元素(原数组改变)

var a = [1,2,3];
a.pop(); => a = [1,2]

11.unshift( ) => 在数组头部添加元素(原数组改变)

与push相仿

12.shift( ) => 删除数组头部元素(原数组改变)

与pop相仿

13.toString() => 将数组中的所有元素转化为一个字符串

[1,2,3].toString() => “1,2,3”

14.forEach() => 遍历数组,为每个元素调用指定函数

var a = [1,2,3];
var sum = 0;
a.forEach(value => sum += value); => sum=6

15.map( ) => 遍历数组,为每个元素调用指定函数,并返还一个值

var a = [1,2,3];
var b = a.map(value => value+1) => b=[2,3,4]

16.filter( ) => 遍历数组,并通过传递的函数条件来筛选并返回一个新的子集

var a = [1,2,3];
var b = a.filter(x => x>2); => b = [3]

17.every( ) => 遍历数组,当数组中所有的元素都满足判定条件时返回true,当遇到不满足条件时就返回false并停止遍历

var a = [1,2,3];
var b = a.every(value => value>2); => b = false
var c = a,every(value => value>0); => c = true

18.some( ) => 遍历数组,当数组中有元素满足条件时,就返回true,并停止遍历,与every()相反

19.reduce( ) => 使用指定函数将数组元素进行组合,生成单个值,第一个参数是,第二个参数是一个可选值,用于函数的初始值

var a = [1,2,3];
var sum = a.reduce((x,y) => x+y,0); => sum = 6

20.reduceRight => 与reduce()一样,不过从右向左执行

21.indexOf( ) => 从左到右查找数组中元素索引,没有返回-1

var a = [1,1];
a.indexOf(1) => 0

22.lastIndexOf() => 从右到左查找数组中元素索引,没有返回-1

var a = [1,1];
a.lastIndexOf(1) =>1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值