JS数组方法总结大全

js数组方法总结

JavaScript语言里给数组提供了很多好用的方法对数组进行操作,用起来非常方便,在此总结记录一下。

一.数组创建

1.使用 Array 构造函数:
var arr1 = new Array(); //创建一个空数组
var arr2 = new Array(10); // 创建一个包含10项的数组
var arr3 = new Array("pink","teacher");  // 创建一个包含2个字符串的数组
2.使用字面量表示法:
var arr4 = []; //创建一个空数组
var arr5 = [20]; // 创建一个包含10项的数组
var arr6 = ["pink","teacher"];  // 创建一个包含2个字符串的数组

二.数组方法

数组的方法主要有以下这些:
1.遍历数组 !!!!
        ① for循环
        ② forEach()
        ③ map()
        ④ filter()
        ⑤ every()
        ⑥ some()
2.转换字符串:
        ① join()
        ② toString()
3. 添加元素:
        ① unshift() 在开头添加元素
        ② push() 在末尾添加元素
4.删除元素:
        ① pop() /shift() 删除数组的最后一个元素
        ② splice() 删除指定索引的元素
5.截取数组内容:slice()
6.数组排序: sort()
7.翻转数组:reverse()
8.连接数组:concat()
9.判断是否是数组
        ① isArray()
        ②instanceof (运算符)

1.遍历数组

(1)普通for循环
for(let i  = 0; i < arr.length; i++) {
}

想必学过编程的同学都用过,最简单的,也是使用最频繁的一种。

(2)优化版for循环(性能最高)
for(let i  = 0; len=arr.length; i < len; i++) {
}

   使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组长度较大时优化效果比较明显。基本上是这些方法里面性能最好的一个。

(3)forEach()
arr.forEach( function(item, idnex, array){
} )  //item是数组元素,index是索引,array是数组自身

数组自带的forEach()方法,使用也较频繁,性能一般。

(4)map()
var arr2 = arr.map(function(item,index){
	return item*2  //将数组每个元素的值*2
})

   map:意思是映射(一个对应一个),对数组内容进行操作然后返回,如果未返回,值为undefined,返回值长度和原数组一样。

(5)every()
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.every(function(item) {
     return item < 10;
}); 

   判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。

(5)filter()
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.filter(function(item, index) {
     return item >= 3
}); 

filter: 过滤器(符合条件的留下)。
      ① 符合条件的元素return true ,被返回。
      ② 原的内容不变,只是筛选功能。

(6)some()
var arr = [1, 2, 3, 4, 5];
var flag= arr.some(function(x) {
     return x > 3;
}); 
console.log(flag); //true

判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。

2.转换为字符串

(1) join() 和 toString()
var arr = [1,2,3];
console.log(arr.join('-')); 	// 1-2-3
console.log(arr.toString()); 	// 1,2,3

① toString() 转换为字符串,没有参数,以逗号分割。
② join(‘分隔符’) 一个参数,可以规定分隔符,默认是逗号。

3.添加元素

(1)push()
var arr = [];
arr.push('pink老师')
arr.push('pink颜色','pink老师')

可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。

(2)unshift()
var arr = ['last'];
arr.unshift('pink老师')
arr.unshift('pink颜色','pink老师')

接收任意数量的参数,将参数依次添加到原数组开头,并返回数组的长度 。

4.删除元素

(1) pop() / shift()
var arr = ['pink颜色','pink老师','pink'];
arr.pop()
console.log(arr)  // ['pink颜色','pink老师'];
arr.shift()
console.log(arr)  // ['pink颜色'];

数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项。

(2) splice()
var arr = [1,2,3,4,5,6,7,8,9];
arr.splice(1,5)  //从索引1开始,删除五个元素
console.log(arr)   // [1,7,8,9];

① 非常强大,也是使用最频繁的方法,可以删除任意数量的项。
② 指定 2 个参数:要删除的第一项的索引值和要删除的项数。

5.截取数组元素

(1) slice()
var arr = [1,3,5,7,9];
var arr2 = arr.slice(1,2);   // [3,5]

slice(start,end):返回从原数组中 start索引值 到 end索引值 之间的项组成的新数组。没有end 的话默认截取到数组末尾。

6.数组排序

(1) sort()

在排序时,sort()方法会调用每个数组项的 toString()转型方法,然后比较得到的字符串,以确定如何排序。即使数组中的每一项都是数值, sort()方法比较的也是字符串,所以出现两位及以上的数字时会出错。用以下的方法解决:

arr.sort(function(a, b){
	return a - b    //升序排序
})

① 升序时用 return a - b
② 降序时用 return b - a

7.翻转数组

(1) reverse()
var arr = [1,3,5,7,9];
arr.reverse(1,2);   // [9,7,5,3,1]

反转数组项的顺序,会改变原数组。

8.连接数组

(1) concat()
var arr = [1,3,5];
var arr2 = [2,4,6]
var arr3 = arr.concat(arr2 ); //[1,2,3,4,5,6]

concat() :将参数添加到原数组中。
① 先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。
② 在没有参数的情况下,它只是复制当前数组并返回副本。

8.判断是否是数组

(1) Array.isArray()
var arr = [1,3,5];
Array.isArray(arr)   //true
Array.isArray('arr')   //false

用于确定传递的值是否是一个 Array,如果值是 Array,则为true; 否则为false。

(2) instanceof (运算符,并不是一个方法)
var arr = [1,3,5];
var flag = arr instanceof Array    //true
var flag2 = 'arr' instanceof Array    //flag

运算符,可以用来检测是否是数组

猜你喜欢

转载自blog.csdn.net/q130334/article/details/106784882
今日推荐