JS数组常用操作方法

1、join();
用法:将数组中的所有元素都转化为字符串,并连接在一起;

var a = [1,2,3,4];
console.log(a.join('-')); //1-2-3-4

2、reverse()
用法:将数组中的元素颠倒顺序.

var a = [1,2,3,4];
console.log(a.reverse()); // [4, 3, 2, 1]

3、concat()
用法:拼接多个数组,并返回全新的数组,原数组不受影响;

var a = [1,2];
var b = [10,20];
console.log(a.concat(b)); //[1, 2, 10, 20]

4、slice()
用法:截取数组生成新数组,原数组不受影响;
返回的数组**第一个参数指定的位置(包含)和第二个参数指定的位置(不包含)**之间的所有元素,如果指定参数为负数,则从数组的最后一个元素开始,如果只有一个参数,则表示到数组的末尾;

var aa = [1,2,3,4,5,6];
console.log(aa.slice(2)); //[3,4,5,6]
console.log(aa.slice(2,8)); //[3,4,5,6] 超过最大长度,只显示到最后结果
console.log(aa.slice(2,5)); //[3,4,5]
console.log(aa.slice(2,-1)); //[3,4,5] 相对于倒数第一个之前
console.log(aa.slice(2,-2)); //[3,4] 相对于倒数第二个之前
console.log(aa.slice(3)); //[4,5,6] 一个参数从第三个到最后
console.log(aa.slice(-2));//[5,6] 一个参数负值从倒数第二个到最后

5、splice()
用法:从数组中添加、删除项目,然后返回被删除的项目。该方法会改变原始数组,
语法:

array.splice(index,howmany,item1,...,itemX)
var aa = [1,2,3,4,5,6];
console.log(aa.splice(4)); //[5,6]  返回删除后的数组
aa; // [1,2,3,4]
console.log(aa.splice(2,2)); //[3,4] 从第二位起删除两个元素
aa; //[1,2]
console.log(aa.splice(1,0,7,8)); //[]从第一位起删除0个元素,添加7,8到原数组
aa;//[1,7,8,2]

6、push()
用法:在数组的末尾添加一个或者多个元素,并返回新的数组长度;

7、pop()
用法:删除并返回最后一个元素,且把数组的长度减1,并返回它删除的元素的值,如果数组为空,则不改变数组,并返回undefined;

8、shift()
用法:把数组的第一个元素从其中删除,并返回第一个元素的值,
说明:如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。请注意,该方法不创建新数组,而是直接修改原有的 arrayObject。该方法会改变原数组的长度;

9、unshift()
用法:相数组开头添加一个或多个元素,并返回新长度;

10、toString()
用法:可把一个逻辑值或数组转换为字符串,并返回结果。

console.log( [1,2,3].toString() );  //1,2,3
console.log( typeof(true.toString()) );  //string

11、toLocalString()
用法:使用地区特定的分隔符把生成的字符串连接起来,形成一个字符串。

var date = new Date();
console.log(date.toString());  // Wed May 27 2020 11:20:04 GMT+0800 (中国标准时间)
console.log(date.toLocaleString()); //2020/5/27 上午11:20:04

12、indexOf()
用法:返回某个指定的字符在字符串中首次出现的位置。没查到返回-1

console.log(['a','b','c','d'].indexOf('a'));   //1

13、lastIndexOf()
用法:从数组的末尾开始查找,返回某个指定字符串首次出现的位置(即索引值),索引值永远是正序的索引值,没有查找到返回-1

console.log(['a','b','c','d'].lastIndexOf('d'));   //4

14、forEach()
定义:从头至尾遍历数组,为每个元素调用指定函数,改变元素的同时数组内的相应值也会改变,输入为一个待遍历函数,函数的参数依次为:数组元素、元素的索引、数组本身,没有返回值

let a = ['a','b','c','d',];
a.forEach(function(e,index,arr){
	console.log(e);  //单个元素
	console.log(index); //该元素的索引值
	console.log(arr);  //数组
})

15、map()
定义:用的数组的每一个元素传递给指定的函数,并返回一个新数组 ,不修改原数组

var arr = [2,3,4,5,6];
var bb= arr.map(function(x){
  return x*x;
});
console.log(bb); // [4, 9, 16, 25, 36]

16、filter()
定义:过滤功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。函数的参数依次为:数组元素、元素的索引、数组本身,
注:可以去重

var a = [1,2,3,4,5,6,3,1];
a.filter(function(e,i,selfArr){
  return selfArr.indexOf(v) == i;
});
//[1, 2, 3, 4, 5, 6]

17、every()和some()
every() 判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。类似&&
some() 判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。类似 ||

var arr = [1, 2, 3, 4, 5, 6];
arr.every(x=>x>0);//return true;
arr.every(x=>x>5);//return false;
arr.some(x=>x>5);//return true;

18、reduce()和reduceRight()
reduce() 两个参数:函数和递归的初始值。从数组的第一项开始,逐个遍历到最后
reduceRight() 从数组的最后一项开始,向前遍历到第一项

//可以用reduce快速求数组之和
var arr=[1,2,3,4];
arr.reduce(function(a,b){
  return a+b;
}); //10

19、sort()
定义:用于对数组的元素进行排序。在原数组上面进行修改,没有返回值

var a = [6,4,2,8,22];
a.sort(function(x,y){
    return x - y;
})   //小->大
console.log(a);  //[2, 4, 6, 8, 22]

a.sort(function(x,y){
    return y - x;
})   //大->小
console.log(a);  [22, 8, 6, 4, 2]
var b = [  //数组对象去重
	{index:2},
	{index:7},
	{index:9},
	{index:1},
]
b.sort(function(x,y){
	return x.index - y.index;
})
console.log(b); //b = [ {index:1},{index:2},{index:7},{index:9}]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章