js之数组的方法


一、数组的方法

数组转为字符串: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);
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值