JavaScript的Array类型方法总结

本文全面介绍了JavaScript中数组的各种操作方法,包括新建、检测、转换、栈、队列、重排序、位置、迭代、归并方法及常用操作总结,适合各阶段开发者学习和查阅。

新建数组

var arr1 = ['red', 'blue'];
var arr2 = new Array(2);
var arr3 = new Array('red', 'blue');
复制代码

检测数组

1.instanceof

if (value instanceof Array) {
  // ...
}
复制代码

若在不同的全局执行环境下,可能会出现问题。如,页面中存在两个框架,每个框架有不同版本的 Array 构造函数。

instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上

2.Array.isArray()

这是 ES5 新增的检测方法。

转换方法

1.valueOf() - 返回数组本身

2.toString() - 每项调用自己的 toString() 转为字符串,以逗号分隔拼接

3.toLocaleString() - 与 toString() 类似,但每项调用的是 toLocaleString()

4.join() - 与 toString() 类似,但可传入自定义分隔符

栈方法

1.push() - 从尾插入 (数组最后)

2.pop() - 从尾取出 (数组最后)

队列方法

1.shift() - 从头取出 (数组开头)

2.push() - 从尾插入

3.unshift() - 从头插入 (数组开头)

4.pop() - 从尾取出

重排序方法

1.reserve() - 反转

2.sort()

  • 若不传参数,则调用每项的 toString() 方法,实际比较的是字符串。
  • 若传入回调,则应使得:
    • 第一个参数在第二个参数之前,返回负数
    • 两参数相等,返回0
    • 第一个参数在第二个参数之后,返回正数

操作方法

1.concat() - 拷贝并追加参数中的元素或数组

2.slice(start, end) - 基于当前数组中的一项多项创建一个新的数组,不包括 end

  • 若某个参数为负数,则加上数组长度再执行
  • 若 end 小于 start,返回空数组

3.splice() - 在原始数组上插入项

  • 删除 splice(index, length)
  • 插入 splice(index, 0, item1, item2, item3)
  • 替换 splice(index, 1, item1, item2)

位置方法

1.indexOf()

2.lastIndexOf()

注意:查找时使用的是全等比较(===)

兼容性:IE9+、Firefox 2+、Safari 3+、Opera 9.5+、Chrome

迭代方法

每个迭代方法可传入两个参数:

  • 在每项上运行的函数
  • [可选] 运行该函数的作用于对象——影响 this 的值

1.every() & some() - 每一项/某一项返回 true,则返回 true

2.filter() - 返回返回 true 的项目组成的数组

3.forEach() - 仅遍历,无返回值

4.map() - 返回每项的返回值组成的数组

兼容性:IE9+、Firefox 2+、Safari 3+、Opera 9.5+、Chrome

归并方法

1.reduce()

接收两个参数:

  • 在每项上调用的函数,四个参数:
    • 前一个值 prev,上一项调用函数的返回值
    • 当前值 cur
    • 项的索引 index
    • 数组对象 array
  • [可选] 作为归并基础的初始值

2.reduceRight()

从最后一项遍历到第一项

兼容性:IE9+、Firefox 3+、Safari 4+、Opera 10.5+、Chrome

常用操作总结

1. 数组拷贝
  • arr.slice(0)
  • arr.concat()
  • arr.join().split(',')
2. 元素插入头部
  • [item].concat(arr)
  • arr.unshift(item)
  • [].push.apply([item], arr) (利用了 apply 的第二个参数必须是参数数组的特性)
  • arr.splice(0, 0, item)
3. 移除头部元素
  • arr.slice(1)
  • arr.shift()
  • arr.splice(0, 1)
4. 元素插入尾部
  • arr.concat([item])
  • arr.push(item)
  • [].push.apply(arr, [item])
  • arr.splice(arr.length, 0, item)
5. 移除尾部元素
  • arr.slice(0, -1)
  • arr.pop()
  • arr.splice(arr.length - 1, 1)

欢迎大家指正、补充!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值