常用的数组方法

常用数组方法汇总

数组转字符串

  • join()  数组转字符串
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join();
console.log(energy);//Banana,Orange,Apple,Mango

注:参数可选。指定要使用的分隔符。如果省略,则使用逗号作为分隔符。

排序排列(会改变原数组

  • reverse()  反转数组
 var arr=[3,6,2,4,1,5];
 console.log(arr.reverse())//[5, 1, 4, 2, 6, 3]
  • sort()  数组排序
var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(fruits.sort());//Apple,Banana,Mango,Orange

注意:

1.参数可选。规定排序顺序。必须是函数。

2.sort()方法默认是按字母升序。

3.要使用数字排序,你必须通过一个函数作为参数来调用。比如:

var arr=[3,6,2,4,1,5];
console.log(arr.sort(function sort(a,b){
        return a-b;
    }))//[1, 2, 3, 4, 5, 6]    正向
console.log(arr.sort(function sort(a,b){
        return b-a; 
    }))//[6, 5, 4, 3, 2, 1]     反向

增删改(会改变原数组

  • push()     在数组尾部添加元素
var arr=[3,6,2,4,1,5];
arr.push(9);
console.log(arr);// [1, 2, 3, 4, 5, 6, 9]
  • pop()       删除数组的最后一个元素
var arr=[3,6,2,4,1,5];
arr.pop();
console.log(arr);// [3,6,2,4,1]
  • shift()       把数组的第一个元素从其中删除
var arr=[3,6,2,4,1,5];
arr.shift();
console.log(arr);// [6, 2, 4, 1, 5]
  • unshift()    在数组头部添加元素
var arr=[3,6,2,4,1,5];
arr.unshift(9);
console.log(arr);//[9, 3, 6, 2, 4, 1, 5]
  • splice()      用于添加或删除数组中的元素,会改变原数组

参数1:必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。

参数2:必需。要删除的项目数量。如果设置为 0,则不会删除项目

参数3:可选。向数组添加的新项目

var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"

arr.splice(2,3,"William")
console.log(arr);//["George", "John", "William", "Martin"]    将删除从 index 2 ("Thomas") 开始的三个元素,并添加一个新元素 ("William") 来替代被删除的元素
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"

arr.splice(2,1);
console.log(arr); //["George", "John", "James", "Adrew", "Martin"]    将删除index 2 ("Thomas") 的元素

拼接

  • concat()   连接数组
var arr1=["1","2","3"];
var arr2=["4","5","6"];
console.log(arr1.concat(arr2));//["1", "2", "3", "4", "5", "6"]

循环遍历

  •  forEach()   遍历,改变原数组
const  arr=[1,2,3];
arr.forEach(function(val,index,arr){
    arr[index]=val+1;
});
console.log(arr);//[2,3,4]

  • map()    遍历,不改变原数组,数组中的元素为原始数组元素调用函数处理后的值
console.log([1,2,3].map(x => x + 1));//[2,3,4]

查找

  • slice()    从已有的数组中返回选定的元素

参数1:可选。规定从何处开始选取。若为负数,从尾部开始选取。-1 指最后一个元素,-2 指倒数第二个元素,以此类推。

参数2:可选。规定从何处结束选取。不包括该元素(包头不包尾

var arr=[1,2,3,4,5];
var myarr=arr.slice(-3,-1);
console.log(myarr);//[3, 4]
  • filter()    创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,不会对空数组进行检测
var arr=[10,11,12,13,14];
function checkNumber(num){
    if(num<13){
        return  num;
    }
}
var arrs=arr.filter(checkNumber);
console.log(arrs);// [10, 11, 12]
  • every()    检测数组中所有元素是否都符合条件,通过函数提供,不是即为false
  • some()    只要有一项满足就返回true
var arr=[10,11,12,13,14];
function checkNumber(num){
    if(num<13){
        return  num;
    }
}
var arr1=arr.every(checkNumber);
var arr2=arr.some(checkNumber);
console.log(arr1);//false
console.log(arr2);//true
  • indexOf()   返回数组中某个指定的元素位置,从数组开头查找,没有就返回-1
  • lastIndexOf()   从数组末尾查找
var arr=[1,2,3];
arr.indexOf(1);//0
arr.indexOf(5);//-1
arr.lastIndexOf(1);//0
arr.lastIndexOf(-3);//-1
  • find   遍历数组,找到第一个符合回调函数的值,没有返回undefined
  • findIndex     遍历数组,找到第一个符合回调函数的值的索引,没有返回-1
const  arr=[1,2,3];
arr.find(function(value){
   return value>0;
});//1

arr.findIndex(function(value){
   return value>0;
});//0

其它

  • reduce()     

第一个参数:接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

第二个参数:调用回调函数的第一个参数,没有就默认数组的第一个值。

var numbers = [65, 44, 12, 4];

function getSum(total, num) {
    return total + num;
}
 console.log(numbers.reduce(getSum));//125
  • fill   填充数组,改变原数组

第一个参数:用于填充数组的值

第二个参数:可选参数,表示填充的起始位置

第三个参数:可选参数,表示填充的结束位置,若省略该参数并且填写了第二个参数,则表示从起始位置开始一直到末尾的所有元素都被填充

[1,2,3].fill(5);  // [5, 5, 5]
[1,2,3].fill(5,1);  //[1, 5, 5]
[1,2,3].fill(5,0,2);  //[5, 5, 3]
  • Array.from()   将类似数组可以迭代的对象转化为数组
  • new set()    新的数据结构,无重复值(包括NAN)
let arr=[1,3,3,5,6,6,7]
console.log(Array.from(new Set(arr)))//输出[1,3,5,6,7],数组去重
  • 扩展运算符...

let arr=[1,3,3,5,6,6,7];
let arr2=[9,...arr];
console.log(arr2);  //[9, 1, 3, 3, 5, 6, 6, 7]
  • flat     数组扁平化,按指定深度遍历数组,将数组和子数组中的元素集合合并为一个新数组返回。可以实现多维数组转一位数组。

参数:depth   可选结构深度,默认为1;使用Infinity 作为深度,展开任意深度的嵌套数组

会移除数组中的空项

var arr=[1,[2,3],[5,6]];
arr.flat();  //[1,2,3,5,6]

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

总结

增删、排序都会改变原数组。

es6新增方法有every、some 、forEach、filter 、indexOf、lastIndexOf、isArray、map、reduce、reduceRight等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值