一、数组的方法
数组转为字符串:toString();join()
toString():将数组转化为以逗号分隔的字符串
join():将数组转化为以指定分隔符分割的字符串
var fruits = ["Banana", "Orange", "Apple"];
var str = fruits.toString() //str的值是“Banana,Orange,Apple”, 原数组fruits不变
合并数组:concat()
concat():合并现有数组来创造一个新的数组。原数组不会改变
当concat()中没有任何参数时,,表示拷贝原数组
var arr1 = ["Banana", "Orange"];
var arr2 = ["Apple", "Mango"];
var newArr = arr1.concat(arr2)
//newArr=["Banana", "Orange", "Apple", "Mango"] 原数组arr1,arr2不变
var arr1 = ["Banana", "Orange"];
var newArr = arr1.concat("Apple", "Mango")
//newArr为[“Banana”, “Orange”, “Apple”, “Mango”] 原数组arr1不变
var arr1 = ["Banana", "Orange"];
var newArr = arr1.concat()
//此时newArr=["Banana", "Orange"],将原数组拷贝了一份
查找索引:indexOf()
indexOf(x,y):返回要查找的值在数组中首次出现的位置。
x:可以指代要查找的元素
y:指代从y下标开始的位置进行查找
var fruits = ["Banana", "Orange", "Apple"];
var index = fruits.indexOf("Apple") //index的值是2
var index = fruits.indexOf("Mango") //index的值是-1
截取数组
slice()方法:截取指定区间的数组,且不会影响原数组;
//slice()
var arr=["f","x","g"];
var newArr.alice(1);//newArr=["x","g"],表示从下标为1的地方开始截取,直到数组最后
var newArr.alice(0,2);//newArr["f","x"],当alice()中有两个参数时,其区间是前闭后开
var newArr = fruits.slice(-2) //newArr=["f","x"];当alice()为负数时,表示从末尾截取几个元素。slice(-2)表示截取最后两个元素
arr.slice(-10,-2)表示从倒数第十个元素(包含)到倒数第二个元素(不包含),即[-10,-2)
数组更新
splice():从数组中添加/删除项目,然后返回被删除的项目(该方法会修改原数组)
splice()之删除:
//删除的第一种格式:
var arr1=[1,2,3,4,5];
var x=arr1.splice(2);//删除下标为2之后的元素
console.log(arr1)//arr1=[1,2];
console.log(x)//x=[1,2];
//删除的第二种格式
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var items = fruits.splice(2,1) //fruits的值是[“Banana”, “Orange”, “Mango”]; items的值是[“Apple”]
//2代表删除下标从2开始之后的元素,1代表删除数量,即从截取到的所以元素中,删除一个
数组归并
reduce():接受一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
arr.reduce(function(acc,cur,index,arr)){}, initialValue)
acc: 必选 accumulator 累加器,计算结束后的返回值
cur: 必选 currentValue 当前元素
index: 可选 currentIndex 当前元素的索引
arr: 可选 currentArray 当前元素所属的数组
initialValue: 可选 传递给函数的初始值
//数组求和
var arr=[1,2,3,4];
var result=arr.reduce(function(a,b){
return a+b;
})
//二维数组合并为一维数组
var arr=[[1,2],[3,4],[5,6]];
var result=arr.reduce(function(a,b){
return a.concat(b);
})
//a=[1,2,3,4,5,6]
//数组去重
var arr=[1,5,3,7,4,5,3,1,7];
var result=arr.reduce(function(a,b){
if(a.indexOf(b)==-1){
a.push(b);
}
return a
},[])
//a=[1,5,3,7,4]
//去数组中的最大值
var arr=[5,2,8,1,15,45]
var result=arr.reduce(function(a,b){
return Math.max(a,b);
})