常用js —— array数组操作
Array
new Array(4) // [empty × 4] |
基本方法
arr.join()
将数组的值拼接成字符串 不传参数,默认用逗号进行拼接,返回拼接好的字符串
arr.push()
从后面添加一个或多个元素,多个参数逗号隔开,返回新数组的 length
arr.push(arr1) // 把 arr1 当成一个整体放到 arr 里 |
arr.pop()
从数组的后面删除元素,返回删除的那个元素
arr.unshift()
从数组的前面的添加元素,,多个参数逗号隔开,返回新数组的 length
arr.shift()
从数组的最前面删除元素,返回删除的那个元素
arr.reverse()
翻转数组
arr.sort()
排序
sort 方法可以传递一个函数作为参数,这个参数用来控制数组如何进行排序
arr.sort(function(a, b) { |
arr.concat()
数组合并,返回一个新数组,原数组不受影响
a.concat(b) // [...a, ...b] |
arr.slice()
数组切分,复制数组的一部分到一个新数组,并返回这个新数组,原数组不受影响
// slice(begin, end) 包含 begin,不包含 end, begin 和 end 为下标 |
arr.splice()
删除或者增加数组元素,修改原数组,返回删除的内容(数组形式)
// start: 开始位置 deletedCount: 删除的个数(如果不删除为 0)items: 替换的内容, 可为多个 |
arr.indexOf()
返回数组中某个元素第一次出现的位置,如果找不到,返回 -1
// fromIndex 表示从 fromIndex 下标开始查找 |
arr.lastIndexOf()
从后面开始查找数组中元素出现位置,即查找某元素最后一次出现的位置,如果找不到,返回 -1
arr.lastIndexOf('zs'[, fromIndex]) |
arr.forEach()
返回值: undefined
除了抛出异常以外,没有办法中止或跳出 forEach() 循环
不支持 return 操作输出,return 只用于控制循环是否跳出当前循环
遍历时会自动忽略 empty 值
arr.forEach(function(item, index, arr) {}, thisArg) |
arr.map()
var newArr = arr.map(function(item, index) { |
arr.filter()
var newArr = arr.filter(function(item, index) { |
arr.some()
var newArr = arr.some(function(item, index) { |
arr.every()
var newArr = arr.every(function(item, index) { |
arr.includes()
判断数组是否含有某值,输出 true 或 false
var flag = arr.includes(5) |
arr.find()
使用 return 操作输出,会循环数组每一项,当循环到满足条件时则跳出循环,输出当前数组元素
如果全不满足返回 undefined
var newArr = arr.find(function(item, index) { |
arr.findIndex()
使用 return 操作输出,会循环数组每一项,当循环到满足条件时则跳出循环,输出当前数组元素的下标
如果全不满足返回 -1
var index = arr.findIndex(function(item, index) { |
arr.reduce()
var new1 = arr.reduce(function(accumulator, current, index, array) { |
// 扁平化数组 |
// 对象数组叠加计算 |
arr.fill()
用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引
arr.fill(value[, start[, end]]) |
arr.flat()
扁平化数组
按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回
var newArray = arr.flat([depth]) |
伪数组
伪数组也叫类数组
- 伪数组其实就是一个对象,但是跟数组一样,伪数组也会有
length
属性,也有0, 1, 2, 3
等属性 - 伪数组并没有数组的方法,不能使用
push/pop
等方法 - 伪数组可以跟数组一样进行遍历,通过下标操作
- 常见的伪数组:
arguments
、document.getElementsByTagName的返回值
、jQuery对象
var obj = { |
- 伪数组借用数组的方法
// 给 obj 添加一项 |
- 将伪数组转换成真数组
// 借用数组的方法 |