总结Javascript数组方法

1.改变原数组

(1)push(): 给数组末尾追加元素,返回数组新长度
(2)pop(): 删除数组末尾第一个元素,返回删除元素
(3)unshift(): 给数组开头添加元素,返回数组新长度
(4)shift(): 删除数组开头第一个元素,返回删除元素
(5)splice(开始索引,截取个数,替换内容): 按照数组的索引截取或者替换内容,以数组返回截取的内容

		1.删除 splice(0, 2)//会删除前两个元素
		2.插入 splice(2, 0, "red", "green")//会从数组位置 2 开始插入字符串"red"和"green"。
		3.替换 splice(2, 1, "red", "green")//会在位置 2 删除一个元素,然后从该位置开始向数组中插入"red"和"green"。

(6)reverse():翻转数组,返回翻转数组
(7)sort(function(a,b){return a-b}):在每一项上调用 String()转型函数,默认情况根据数组元素的每个字符的ascii码值来进行升序排列

2.不改变原数组

(1)concat(): 数组拼接,返回一个新的数组
(2)join(‘连接符’): 将数组的每一项通过连接符拼接,转换为字符串,返回字符串,视空位置为空字符串
(3)slice(start, end): 提取数组元素,不包含结束位置,负数则从右往左提取

3.数组的迭代

(1)for   和   for(k in array)
for in通过索引进行遍历,不会遍历出空元素,for遍历出空元素为undefined

(2)for…of:ES6新增

for (const [idx, item] of a.entries())

遍历的是元素,空元素为undefined

(3)forEach

arr.forEach(function (item, index, arr) {})

强制遍历所有元素,不能使用break结束,不会遍历出空元素

(4) map

var newArr = arr.map(function (item, index, arr){return })

遍历数组,可以对数组中的每一项进行操作运算,返回一个新的数组,不会遍历出空元素

(5)filter

var newArr = arr.filter(function (item, index, arr){ return })

按照条件来筛选数组,返回满足条件的新数组,不会遍历出空元素

(6)some

 var newArr = arr.some(function (item, index, arr){ return })

用于检测数组中的元素是否满足指定条件 ,有则返回true,没有返回false,不遍历出空元素,遍历到满足条件的第一个元素终止,不会对空数组进行检测。

(7)every

 var newArr = arr.every(function (item, index, arr) { return }

用于检测数组所有元素是否都符合指定条件,检测到有一个元素不满足,遍历终止,返回true或false,不会对空数组进行检测。

(8)reduceRight 和 reduce 数组的归并方法

var str = a.reduce(function(prev,cur,index,arr){return prev + cur ;})//上一次调用时返回的结果,当前元素

接收一个函数callback fn作为累加器,数组中每个值(从左到右)开始合并,最终合成一个值 ,可求递归

4.检测是否为数组

(1)array instanceof Array 因而只有一个全局作用域的情况下
(2)Array.isArray(array)

5.数组 空位

ES6 新增方法普遍将这些空位当成存在的元素,只不过值为 undefined;ES6 之前的方法则会忽略这个空位,

6.数组新增方法

(1)from(): 可以使用任何可迭代对象

		1.用于将类数组结构转换为数组实例,
		2.字符串拆分为数组,对现有数组执行浅复制,
		3.也能转换带有必要属性的自定义对象
		4.将集合和映射转换为一个新数组
		5.也能转换带有必要属性的自定义对象
		6.还接收第二个可选的映射函数参数,可以接收第三个可选参数,用于指定映射函数中 this 的值

(2)of():可以把一组参数转换为数组

(3)fill():填充数组方法

zeroes.fill(5);//用 5 填充整个数组
zeroes.fill(6, 3);//用 6 填充索引大于等于 3 的元素
zeroes.fill(7, 1, 3);//用 7 填充索引大于等于 1 且小于 3 的元素
zeroes.fill(8, -4, -1);//用 8 填充索引大于等于 1 且小于 4 的元素
静默忽略超出数组边界、零长度及方向相反的索引范围

(4)copyWithin():批量复制方法

ints.copyWithin(5);//从 ints 中复制索引 0 开始的内容,插入到索引 5 开始的位置
ints.copyWithin(0, 5); //从 ints 中复制索引 5 开始的内容,插入到索引 0 开始的位置
ints.copyWithin(4, 0, 3);// 从 ints 中复制索引 0 开始到索引 3 结束的内容,插入到索引 4 开始的位置
ints.copyWithin(-4, -7, -3);//
静默忽略超出数组边界、零长度及方向相反的索引范围:

(5)valueOf():返回数组本身
(6)toString():将数组转换为字符串用逗号隔开,调用toString():方法
(7)toLocaleString():将数组转换为字符串用逗号隔开,调用toLocaleString():方法

7 搜索和位置方法

1.严格相等
(1)indexOf(查找指定元素,索引开始位置):查找数组中的指定元素第一次出现位置,返回元素索引,不存在返回-1
(2)lastIndexOf(查找指定元素,索引开始位置): 从右往左查询指定元素第一次出现位置,返回元素索引,不存在返回-1
(3)includes(查找指定元素,索引开始位置):返回布尔值,表示是否至少找到一个与指定元素匹配的项

2.断言函数

        find() 和   findIndex() 从数组的最小索引开始,搜索数组,找到匹配项不在搜索

alert(people.find((element, index, array) => element.age < 28)); 
// {name: "Matt", age: 27} 
alert(people.findIndex((element, index, array) => element.age < 28)); 
// 0
8 解构数组
// 数组单层解构
let arr = ['foo', 'bar', 'baz'];
let [a, b, c] = arr; 
console.log(a, b, c); // foo, bar, baz
//多级解构数组
let arr=[1,2,[3,4]]
let[a,b,[c,d]]=arr
console.log(c)
console.log(d)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值