js数组30个操作方法

15 篇文章 0 订阅
12 篇文章 0 订阅

数组是什么

数组可以用一个变量名存储所有的值,并且可以用变量名访问任何一个值。
数组中的每个元素都有自己的的ID,以便它可以很容易地被访问到。
常用于存储数据,并且能够精准找到数据的位置
数组就像是

操作方法

在w3c里面,官方给出的数组方法共有30个之多,实际上在开发当中,我们常用的可能也就十多个,下面就把数组的方法写下来:
其中可以按照功能来简单的划分为6个功能:返回功能,其他功能(不好定义的功能),增加和删除的功能,计算功能,排序功能和ES6新增的功能
一,返回功能
1、concat(),连接两个或者更多的数组,并返回一个新的数组。

let arr = [2, 3, 1, 9, 7, 5, 8, 22];
let arr2 = ['这是arr2'];
console.log(arr.concat(arr2));    // 输出:[ 1, 2, 3, 5, 7, 8, 9, 22, '这是arr2' ]

2、filter(),返回一个数组,里面包含符合条件的元素。
3、find(),返回数组中符合条件的第一个元素。
4、findIndex(),返回数组中符合条件的第一个元素的所在位置。
5、indexOf(),返回数组中指定元素的位置,如果数组中没有指定的元素则返回-1。
6、isArray(),判断个对象是否为数组,是 返回true,不是 返回false。
7、lastIndexOf(),返回指定的元素在数组中最后出现的位置,在数组的后面开始搜索。
8、map(),返回一个新数组,数组中的元素是原始数组的元素调用函数之后处理的值。
9、slice(),返回指定的数组元素,第一个参数是开始的位置,第二个是结束位置(不包含结束位置的元素)。

let arr = [2, 3, 1, 9, 7, 5, 8, 22];
console.log(arr);
console.log(arr.slice(2, 6));
输出结果:
[ 2, 3, 1, 9, 7, 5, 8, 22 ]
[ 1, 9, 7, 5 ]

10、some(),检测数组中是否含有指定的元素,有的话就返回true,没有就返回false。
11、toString(),将数组转为字符串,并返回结果。

let arr = [2, 3, 1, 9, 7, 5, 8, 22];
console.log(arr);
console.log(arr.toString());
输出结果:
[ 2, 3, 1, 9, 7, 5, 8, 22 ]
2,3,1,9,7,5,8,22

26、ES6:entries(),返回数组的迭代对象。

二,增加和删除

12、pop(),删除数组的最后一个元素,并返回删除的元素。

let arr = [2, 3, 1, 9, 7, 5, 8, 22];
console.log(arr);
console.log(arr.pop());
console.log(arr);
以下是输出结果:
[ 2, 3, 1, 9, 7, 5, 8, 22 ]
22
[ 2, 3, 1, 9, 7, 5, 8 ]

13、push(),在数组后面添加新元素,并返回数组新的长度。

let arr = [2, 3, 1, 9, 7, 5, 8, 22];
console.log(arr);
arr.push("新增1", "新增2");
console.log(arr);
以下是输出结果:
[ 2, 3, 1, 9, 7, 5, 8, 22 ]
[ 2, 3, 1, 9, 7, 5, 8, 22, '新增1', '新增2' ]

14、shift(),删除并返回数组第一个元素。

let arr = [2, 3, 1, 9, 7, 5, 8, 22];
console.log(arr);
arr.shift();
console.log(arr);
以下是输出:
[ 2, 3, 1, 9, 7, 5, 8, 22 ]
[ 3, 1, 9, 7, 5, 8, 22 ]        // 原来数组的第一个元素已经被删除

15、unshift(),向数组的最前面添加新元素,并返回新的数组长度。

let arr = [2, 3, 1, 9, 7, 5, 8, 22];
console.log(arr);
arr.unshift("new1", "new2", "new3");
console.log(arr);
输出结果:
[ 2, 3, 1, 9, 7, 5, 8, 22 ]
[ 'new1', 'new2', 'new3', 2, 3, 1, 9, 7, 5, 8, 22 ]

16、splice(),添加和删除数组中的元素,第一个参数是要删除的元素的开始位置,第二个参数是要删除的元素的个数。第三个以及以后的参数都是添加到数组中的新元素。

let arr = [2, 3, 1, 9, 7, 5, 8, 22];
console.log(arr);
console.log(arr.splice(2, 3, "这是新添加的元素"));
console.log(arr);
输出结果:
[ 2, 3, 1, 9, 7, 5, 8, 22 ]
[ 1, 9, 7 ]
[ 2, 3, '这是新添加的元素', 5, 8, 22 ]

三,其他功能

17、every(),检测数组所有元素是否都符合指定条件,接收一个函数作为参数,用于检测数组中的元素,用法如下:

var ages = [32, 33, 12, 40];
function checkAdult(age) {
    return age >= 22;
}
console.log(ages.every(checkAdult));

18、forEach(),数组每个元素都执行一次回调函数。
19、join(),将数组中的所有元素放到一个字符串,参数是字符串的分隔符。

四,计算功能

20、reduce(),将元素的值计算为一个值,从左到右。
21、reduceRight(),将元素的值计算为一个值,从右到左。

五,排序功能

22、reverse(),反转数组元素的排列顺序。
23、sort(),对数组进行排序,可以接收一个比较函数。

升序:
function compaer (value1, value2) {
    if (value1 < value2) {
        return -1;
    }
    if (value1 > value2) {
        return 1;
    }
    else {
        return 0;
    }
}
降序:
function compaer (value1, value2) {
    if (value1 < value2) {
        return 1;
    }
    if (value1 > value2) {
        return -1;
    }
    else {
        return 0;
    }
}

六,ES6新增的功能

24、ES6:copyWithin(),从数组的指定位置复制元素到数组的指定位置。语法:array.copyWithin(target, start, end)。
25、ES6:entries(),返回数组的迭代对象。如下:

var arr2 = ["壹", "貮", "叁", "肆", "伍"];
var a3 = arr2.entries();
console.log(a3.next().value)
console.log(a3.next().value)
console.log(a3.next().value)
console.log(a3.next().value)
console.log(a3.next().value)

如果ages数组中任意一个元素不符合checkAdult函数里面的条件,都会返回false,并且剩余的元素不会再进行检测。
26、ES6:fill(),将一个固定的值替换数组里面的元素。语法:array.fill(value, start, end)。
27、ES6:from(),将伪数组转换为真正的数组。
28、ES6:includes(),判断数组中是否函数指定的值,如有返回true,否则返回false。

let arr = [2, 3, 1, 9, 7, 5, 8, 22];
console.log(arr.join("-"));        // 输出 2-3-1-9-7-5-8-22

29、ES6:keys(),从数组创建一个包含数组键的可迭代对象。
30、valueOf(),返回数组对象的原始值。

七,这些方法会改变原数组

会改变原数组的方法:push、pop、shift、unshift、sort、reverse、splice。
使用Array.isArray()方法检测一个变量是否为数组是比较靠谱的做法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值