为什么需要数组?
基本数据类型的数据结构比较单一,不能够满足我们的开发所需,而且我们需要保存一系列的数据,需要用到数组。
引言:
由于我的爱好广泛,想展示我的个人爱好,需要通过多个变量来定义非常的繁琐,这个时候如果能够将一组值保存到一起就太好了。
什么是数组?
数组方法汇总:
es5:
方法 | 描述 |
---|---|
concat() | 链接两个过着更多的数组,并返回结果 |
join(x) | 将数组以 x 分隔符分割为字符串 |
pop() | 删除并且返回数组的最后一个元素 |
push() | 数组末尾添加元素 |
reverse() | 点到数组中元素的顺序 |
shift() | 删除并返回数组的第一个元素 |
slice() | 对某个已有的数组返回选定的元素 |
sort() | 对元素进行排序 |
splice() | 删除元素,并向数组添加新元素 |
toSource() | 返回该对象的源代码 |
toString() | 把数组转换为字符串,并返回结果 |
toLocaleSting() | 把数组转换为贝蒂数组,并返回结果 |
unshift | 在数组开头添加一个或者更多元素,返回新的数组 |
indexOf | 查找数据在数组中是否存在,返回下标 |
es6 数组新增方法
方法 | 描述 |
---|---|
… | 扩展运算符可以展开数组、对象 |
apply | 将数组转换为函数的参数 |
form | 将类数组转换为真正的数组 |
of | 用于将一组值转换为数组 |
copyWithin | 数组实例的方法,将指定位置成员复制到其他位置,会覆盖原有成员,然后返回当前数组 |
find | 返回满足条件的第一个项 |
findIndex | 返回满足条件的第一个项的下标 |
entries | 返回一个二维数组 [ key:[val]] |
keys | 找到数组中所有项的键 |
values | 找到数组中所有项的值 |
includes | 返回一个布尔值,表示某个数组是否包含给定的值 |
flat() | 降维,只降低一维 |
flatMap() | 对每个原数组成员执行一个函数 |
forEach | 数组遍历 |
filter | 过滤数组 |
every | 一假为假,全真为真 |
reduce | 求和等 |
some | 全假为假,一真为真 |
map | 遍历返回新数组 |
数组方法
arrayObject.slice(start,end)
slice() 方法可从已有的数组中返回选定的元素。
请注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。
1 | let arr = [1, 2, 3, 4, 5] |
arrayObject.map()
将数组中的每个元素调用一个提供的函数,结果作为一个新的数组返回,不改变原来的数组
1 | let arr = [1, 2, 3, 4, 5] |
arrayObject.forEach()
将数组中的每个元素调用一个提供的函数,没有返回值,返回值为 undefined,不会改变原数组,注意和 map 方法区分
1 | let arr = [1, 2, 3, 4, 5] |
arrayObject.filter()
将所有元素进行判断,将满足条件的元素作为一个新的数组返回
1 | let arr = [1, 2, 3, 4, 5] |
arrayObject.every()
将所有元素进行判断返回一个布尔值,如果所有元素都满足判断条件,则返回 true,否则为 false:
1 | let arr = [1, 2, 3, 4, 5] |
arrayObject.some()
将所有元素进行判断返回一个布尔值,如果存在元素都满足判断条件,则返回 true,若所有元素都不满足判断条件,则返回 false
1 | let arr= [1, 2, 3, 4, 5] |
arrayObject.reduce()
将所有元素调用返回函数,返回值为最后结果,传入的值必须是函数类型
1 | let arr = [1, 2, 3, 4, 5] |
arrayObject.push()
在数组的后面添加新加元素,此方法改变了数组的长度
1 | let arr = [1, 2, 3, 4, 5] |
arrayObject.pop()
此方法删除数组最后一个元素,并返回数组,此方法改变了数组的长度
1 | let arr = [1, 2, 3, 4, 5] |
arrayObject.shift()
此方法删除数组第一个元素,并返回数组,此方法改变了数组的长度
1 | let arr = [1, 2, 3, 4, 5] |
arrayObject.unshift()
此方法是将一个或多个元素添加到数组的开头,并返回新数组的长度:
1 | let arr = [1, 2, 3, 4, 5] |
Array.isArray()
判断一个对象是不是数组,返回的是布尔值
1 | let str1 = 'hello world' |
arrayObject.concat()
此方法可以将多个数组拼接成一个数组:
1 | let arr1 = [1, 2, 3] |
concat
如果 concat 方法的参数是一个元素,该元素会被直接插入到新数组中;如果参数是一个数组,该数组的各个元素将被插入到新数组中;
1 | let arr1 = [1, 2, 3] |
二维数组降维
1 | let arr = [1, 2, 3, [4, 5, 6], 7, 8, [9, 10]]; |
arrayObject.toString()
此方法将数组转化为字符串
1 | let arr = [1, 2, 3, 4, 5]; |
arrayObject.join()
此方法也是将数组转化为字符串
1 | let arr = [1, 2, 3, 4, 5]; |
arrayObject.splice(开始删除的位置, 删除的个数,删除后新插入的元素)
这方法可以实现增删改:
1 | let arr = [1, 2, 3, 4, 5]; |
arrayObject.sort()
这方法可以将数组元素排序,传进一个函数,函数带两个参数
第一参数 a, 第二参数 b
a-b 升序 b-a 降序
1 | // 升序 |
arrayObject.find()
此方法返回通过函数判断的数组第一个元素的值。
1 | let arr1 = [1, 2, 3, 4] |
arrayObject.findIndex()
findIndex()与 find()的使用方法相同,只是当条件为 true 时 findIndex()返回的是索引值,而 find()返回的是元素。如果没有符合条件元素时 findIndex()返回的是-1,而 find()返回的是 undefined。
1 | const bookArr=[ |
arrayObject.includes()
用来判断一个数组是否包含一个指定的值,如果是返回 true,否则 false。
1 | let site = ['runoob', 'google', 'taobao'] |
arrayObject.reverse()
用于颠倒数组中元素的顺序
1 | var arr = new Array(3) |
arrayObject.fill(value, start, end)
fill() 方法用于将一个固定值替换数组的元素。
1 | value 必需。填充的值。 |
Array.from()
Array.from()就是将一个类数组对象或者可遍历对象转换成一个真正的数组。(ES6)
1 | let arrayLike = { |
- Post link: https://blog.gaocaipeng.com/2019/02/26/mz10aa/
- Copyright Notice: All articles in this blog are licensed under unless otherwise stated.