数组
数组也是对象,于在变量中存储多个值。
# 创建
- 字面-隐式创建
var fruits = ['Apple', 'Banana'];
1
- 常规方式 - 通过构造函数Array()创建
var arr = new Array()
arr[0] = 'tony'
arr[1] = 'jenny'
1
2
3
2
3
- 简洁方式 - 通过构造函数Array()创建
var arr = new Array('tony', 'jenny')
1
# 属性
- constructor —— 返回创建数组对象的原型函数。
- length —— 设置或返回数组元素的个数。
- prototype —— 允许你向数组对象添加属性或方法。
prototype(原型) 属性使用
每个对象都有 prototype 属性,数组也是对象。具体可看对象章节。
constructor 属性使用
每个对象都会从原型上继承一个 constructor 属性。
1
# 数组方法
方法名 | 功能 | 是否会改变原数组 |
---|---|---|
pop() | 删除数组最后一个元素,并返回被删除元素 | Y |
push() | 在数组末尾添加元素,并返回新的长度 | Y |
shift() | 删除数组第一个元素,并返回被删除元素 | Y |
unshift() | 在数组开头添加元素,并返回新的长度 | Y |
reverse() | 颠倒原有数组的排序,并返回结果 | Y |
sort() | 按照 ASCII 字符排序,返回结果 | Y |
splice(index) | 删除指定位置,并替换,返回删除的数据 | Y |
indexOf() | 返回某个指定的字符串值在字符串中首次出现的位置。没有出现则返回-1 | N |
lastIndexOf() | 返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索 | N |
join() | 通过指定分隔符将数组元素放入一个字符串 | N |
slice(star, end) | 返回从start 到 end 的一个子数组 | N |
toString() | 把数组转换为字符串,并返回结果 | N |
valueOf() | 返回数组对象的原始值 | N |
# ES6拓展
# 原型方法
使用:
let arrayLike = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
};
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
方法名 | 功能 | 备注 |
---|---|---|
Array.from() | 用于将”类似数组的对象“和”可遍历对象“转为真正的数组 | |
Array.of() | 用于将一组值,转换为数组 | |
Array.isArray() | 判断是否是数组,返回一个布尔值 |
# 实例方法
使用:
var arr = [1, 2, 3].concat([4,5,6])
console.log(arr); // [1,2,3,4,5,6]
1
2
2
方法名 | 功能 | 是否会改变原数组 |
---|---|---|
concat() | 【合并】合并数组,并返回结果(新数组) | N |
forEach() | 【遍历】遍历数组 | N |
map() | 【遍历】遍历数组通过指定函数处理数组的每个元素,并返回处理后的数组 | N |
entries() | 【遍历】遍历数组, 对键值对的遍历 | N |
keys() | 【遍历】遍历数组, 对键名的遍历 | N |
values() | 【遍历】遍历数组, 对键值的遍历 | N |
includes() | 【检测】某个数组是否包含给定的值, 结果返回一个布尔值 | N |
filter() | 【检测】检测数值元素,并返回符合条件所有元素的数组 | N |
every() | 【检测】检测数值元素的每个元素是否都符合条件 | N |
some() | 【检测】检测数组元素中是否有元素符合指定条件 | N |
copyWithin() | 【覆盖】将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。 | Y |
fill() | 【覆盖】使用给定值,填充一个数组 | Y |
find() | 【查找】查询:找出第一个符合条件的数组成员 | N |
findIndex() | 【查找】返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1 | N |
flat(deep) | 【降维】扁平化数组,可传入数组维度 | N |
flatMap() | 【降维】对原数组的每个成员执行一个函数,对返回值组成的数组执行flat()方法 | N |
reduce() | 【累加】接收一个函数作为累加器, 数组中每个值(从左到右)开始缩减, 最终为一个值 | N |
reduceRight() | 【累加】与reduce顺序相反,将数组元素计算为一个值(从右到左) | N |
# 常见数组操作
# 遍历
# 合并
# 去重
# 排序
# 拷贝
# 检测
Array.isArray()
var arr = [];
Array.isArray(arr); // true
1
2
2