javascipt数组方法

7 篇文章 0 订阅
5 篇文章 0 订阅

1.填充和复制

fill(value,start,end)
value:必填,填充的值
start:可选,开始填充的位置
end:可选,停止填充的位置(默认为到最后),负数代表倒数
/***************************/
const arr = [0,0,0,0,0]

arr.fill(5)			// [5,5,5,5,5]
arr.fill(5,3)		// [0,0,0,5,5]
arr.fill(5,1,3)		// [0,5,5,0,0]
arr.fill(5,-1)		// [0,0,0,0,5]
copyWithin(target,start,end)
target:必须,复制到指定的目标索引位置
start:可选,元素复制的起始位置
end:可选,停止复制的索引位置(默认为到最后),负数代表倒数
/***************************/
const arr = [1,2,3,4,5]

arr.copyWithin(0,3)		// [4,5,3,4,5]把45搬到了前边

2. 转化方法

toString()
返回用逗号分隔的字符串
const arr = ['red','green','blue']
arr.toString()		// red,green,blue
valueOf()
返回本身
const arr = ['red','green','blue']
arr.valueOf()		// ['red','green','blue']
join()
const arr = ['red','green','blue']
arr.join()		// red,green,blue
arr.join("-")	// red-green-blue

3.前后增删

push(value,value)
在数组后方插入元素,返回修改后的数组,该方法会修改数组本身。
pop()
删除数组最后一个元素,并返回被删除元素,该方法会改变数组本身。
unshift(value,value)
在数组前方插入元素,返回修改后的数组长度,该方法会修改数组本身。
shift()
删除数组的第一个元素,并返回被删除元素,该方法会改变数组本身。

4.排序方法

sort()
sort会在原数组上进行排序
/***************************/
const arr = [0, 1, 5, 10, 15];

arr.sort() 						// [0, 1, 10, 15, 5]
arr.sort((a, b) => a - b)		// 正序排序
arr.sort((a, b) => b - a)		// 倒序排序
reverse()
翻转数组所有元素,该方法会改变原先数组。

5.操作方法

concat()
concat()方法用于连接两个或多个数组,不会改变原先数组
slice()
slice() 方法可从已有的数组中返回选定的元素。返回一个新的数组,包含从 start 到 end (不包括end)的数组元素。
splice()
splice(index,length,newValue)

6.归并方法

reduce()
reduceRight()

7.搜索和位置

indexOf()
lastIndexOf()
includes()
find()
findIndex()
const arr = [1,2,3,4,5]
arr.indexOf(2)					//1(返回索引)
arr.lastIndexOf(3)				//2
arr.includes(4)					//true
arr.find(item=>item>2)			//3
arr.findIndex(ite,=>item>2)		//2

8.迭代器方法

keys()
values()
entries()
keys()方法返回数组索引的迭代器,
values()方法返回数组元素的迭代器,
entries()方法返回索引值对的迭代器。

const arr = ['one','two','three','four']
console.log(Array.from(array.keys()))
[0,1,2,3]
console.log(Array.from(array.values()))
['one','two','three','four']
console.log(arr.from(array.entries()))  
[ [ 0, 'one' ], [ 1, 'two' ], [ 2, 'three' ], [ 3, 'four' ] ]

9.迭代方法

forEach()
arr.forEach((item,index,arr)=>{})
map()
let newArr = arr.map((item,index,arr)=>item + 1)
filter()
let newArr = arr.filter(item=>return item>2)
//可以使用filter()方法来移除数组中的undefined、null、NAN等值
let arr = [1, undefined, 2, null, 3, false, '', 4, 0]
arr.filter(Boolean)	//[1, 2, 3, 4]
every()
arr.every(item=>item>0)	//全部符合true
some()
arr.every(item=>item>4)	//一个符合true

10.其他

for…in
主要对数组或对象的属性进行循环操作

for(let key in obeject){}
for(let index in arr){}
for…of
const arr = ['a','b','c','d']
for(let item of arr){
	log(item)	//a,b,c,d
}
for…of 遍历获取的是对象的键值,for…in 获取的是对象的键名;
for… in 会遍历对象的整个原型链,性能非常差不推荐使用,而 for … of 只遍历当前对象不会遍历原型链;

对于数组的遍历,
for…in 会返回数组中所有可枚举的属性(包括原型链上可枚举的属性),
for…of 只返回数组的下标对应的属性值;
flat()
//在ES2019中,flat()方法用于创建并返回一个新数组,这个新数组包含与它调用flat()的数组相同的元素,只不过其中任何本身也是数组的元素会被打平填充到返回的数组中:

[1, [2, 3]].flat()   // [1, 2, 3]
[1, [2, [3, 4]]].flat()   // [1, 2, [3, 4]]

//在不传参数时,flat()默认只会打平一级嵌套,如果想要打平更多的层级,就需要传给flat()一个数值参数,这个参数表示要打平的层级数:

[1, [2, [3, 4]]].flat(2)   // [1, 2, 3, 4]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值