js数组原生方法小结

1.数组检测

  • obj instanceof Array//true
  • Array.isArray(obj)//true
  • Object.prototype.toString.call(obj)//"[object Array]"

2.转换方法

  • arr.toString()、arr.valueOf()

3.栈方法

  • push()在数组末端推入,pop()在数组末端弹出

4.队列方法

  • shift()返回数组第一项,数组长度减一;unshift()在数组前端加入新项并返回数组长度

5.排序方法

  • reverse(),反转数组项顺序
  • sort(),默认升序排序数组项, sort() 方法会调用每个数组项的 toString() 转型方法,然后比较得到的字符串,以确定如何排序,即默认的是字符串比较法。但sort方法可以接收一个比较函数作为参数来解决此类问题。比较函数接收两个参数,如果第一个参数应该位于第二个之前则返回一个负数,如果两个参数相等则返回 0,如果第一个参数应该位于第二个之后则返回一个正数。
    例如,降序排列:
	function compare(value1, value2){
		return value2 - value1;
	}

6.操作方法

  • concat(),可用于复制和连接数组,不影响原数组。
  • slice(),它能够基于当前数组中的一或多个项创建一个新数组。 slice() 方法可以接受一或两个参数,即要返回项的起始和结束位置。在只有一个参数的情况下, slice() 方法返回从该参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。可用于复制和截取数组,不影响原数组。
    如果 slice() 方法的参数中有一个负数,则用数组长度加上该数来确定相应的位
    置。例如,在一个包含 5 项的数组上调用 slice(-2,-1) 与调用 slice(3,4) 得到的
    结果相同。如果结束位置小于起始位置,则返回空数组。
  • splice(),最为强大的数组方法。可对数组进行删除、插入、替换操作。splice() 方法始终都会返回一个数组,该数组中包含从原始数组中删除的项(如果没有删除任何
    项,则返回一个空数组)。

7.位置方法

  • indexOf()
  • lastIndexOf()

两个方法都接收两个参数:要查找的项和(可选的)表示查找起点位置的索引,只indexOf() 方法从数组的开头(位置 0)开始向后查找, lastIndexOf() 方法则从数组的末尾开始向前查找,返回要查找项在数组中的位置,没找到会返回-1。采用全等操作符比较查找。

8.迭代方法

  • every() :对数组中的每一项运行给定函数,如果该函数对每一项都返回 true ,则返回 true 。
  • filter() :对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。
  • forEach() :对数组中的每一项运行给定函数。这个方法没有返回值。
  • map() :对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
  • some() :对数组中的每一项运行给定函数,如果该函数对任一项返回 true ,则返回 true 。
    以上方法都不会修改数组中的包含的值。
    每个方法都接收两个参数:要在每一项上运行的函数和(可选的)运行该函数的作用域对象——影响 this 的值。传入这些方法中的函数会接收三个参数:数组项的值、该项在数组中的位置和数组对象本身。

9.归并方法

  • reduce()
  • reduceRight()

这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。其中, reduce() 方法从数组的第一项开始,逐个遍历到最后。而 reduceRight() 则从数组的最后一项开始,向前遍历到第一项。

这两个方法都接收两个参数:一个在每一项上调用的函数和(可选的)作为归并基础的初始值。传给 reduce() 和 reduceRight() 的函数接收 4 个参数:前一个值、当前值、项的索引和数组对象。这个函数返回的任何值都会作为第一个参数自动传给下一项。第一次迭代发生在数组的第二项上,因此第一个参数是数组的第一项,第二个参数就是数组的第二项。

例子:

	var values = [1,2,3,4,5];
	var sum = values.reduce(function(prev, cur, index, array){
		return prev + cur;
	});
	console.log(sum); //15
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wl_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值