JS数组方法(ES5、ES6)
1. arr.push() 从后面添加元素,添加一个或多个,返回值为添加完后的数组长度
let arr = [1,2,3,4,5]
console.log(arr.push(6,7)) // 7
3 console.log(arr) // [1,2,3,4,5,6,7]
2. arr.pop() 从后面删除元素,只能是一个,返回值是删除的元素
let arr = [1,2,3,4,5]
console.log(arr.pop()) //
console.log(arr) // [1,2,3,4]
3. arr.shift() 从前面删除元素,只能是一个,返回值是删除的元素
let arr = [1,2,3,4,5]
console.log(arr.shift()) //
console.log(arr) // [2,3,4,5]
4. arr.unshift() 从前面添加元素,添加一个或多个,返回值是添加完后的数组的长度
let arr = [1,2,3,4,5]
console.log(arr.unshift(6,7)) //
console.log(arr) // [6,7,1,2,3,4,5]
5. arr.splice(index,num) 删除从index(索引值)开始之后的那num个元素,返回值是删除的元素数组
参数:index 索引值,num 个数
let arr = [1,2,3,4,5]
console.log(arr.splice(2,3)) // [3,4]
console.log(arr) // [1,2,5]
7. str.split() 将字符串转化为数组
let str = '12345'
console.log(str.split('')) // ["1","2","3","4","5"] let str1 = '1/2/3/4/5'
console.log(str1.split('/')) // ["1","2","3","4","5"]
8. arr.concat() 连接两个数组,返回值是连接后的新数组
let arr = [1,2,3,4,5]
console.log(arr.concat([6,7])) // [1,2,3,4,5,6,7]
console.log(arr) // [1,2,3,4,5]
9. arr.sort() 将数组进行排序,返回值是排好的数组,默认是按照最左边的数字进行排序(非数字整体大小)
let arr = [40,8,10,5,79,3]
console.log(arr.sort()) // [10,3,40,5,79,8] let arr2 = arr.sort((a,b) => a - b)
console.log(arr2) // [3,5,8,10,40,79] let arr3 = arr.sort((a,b) => b - a)
console.log(arr3) // [79,40,10,8,5,3]
9. arr.reverse() 将原数组反转,返回值是反转后的数组
let arr = [1,2,3,4,5]
console.log(arr.reverse()) // [5,4,3,2,1]
console.log(arr) // [5,4,3,2,1]
10. arr.slice(start, end) 切去索引值start到索引值end(不包含end的值)的数组,返回值是切出去的数组
let arr = [1,2,3,4,5]
console.log(arr.slice(1,3)) // [2,3]
console.log(arr) // [1,2,3,4,5]
11. arr.forEach(callback) 遍历数组,无返回值
let arr = [1,2,3,4,5]
arr.forEach((value, index, array) => {
console.log(`value--${value} index--${index} array--${array}`)
}) // value--1 index--0 array--1,2,3,4,5
// value--2 index--1 array--1,2,3,4,5
// value--3 index--2 array--1,2,3,4,5
// value--4 index--3 array--1,2,3,4,5
// value--5 index--4 array--1,2,3,4,5
12. arr.map(callbak) 遍历数组(对原数组的值进行操作),返回一个新数组
let arr = [1,2,3,4,5]
arr.map( (value, index, array)=>{
value = value * 2
})
console.log(arr) // [1,4,6,8,10]
13. arr.filter(callback) 过滤数组,返回一个满足要求的数组
let arr = [1,2,3,4,5]
let arr2 = arr.filter((value, index) => value >2)
console.log(arr2) // [3,4,5]
14. arr.every(callback) 根据判断条件,遍历数组中的元素,是否都满足,若都满足则返回true,反之返回false
let arr = [1,2,3,4,5] let arr2 = arr.every((value, index) => i > 2)
console.log(arr2) // false let arr3 = arr.every((value, index) => i > 0)
console.log(arr3) // true
15. arr.some(callback) 根据判断条件,遍历数组中的元素,是否存在至少有一个满足,若存在则返回true,反之返回false
let arr = [1,2,3,4,5] let arr2 = arr.some((value, index) => i > 2)
console.log(arr2) // true let arr3 = arr.some((value, index) => i > 5)
console.log(arr3) // false
16. arr.indexOf() 从前往后查找某个元素的索引值,若有重复的,则返回第一个查到的索引值,若不存在,返回 -1
let arr = [1,2,3,4,5,4] let arr2 = arr.indexOf(4)
console.log(arr2) // let arr3 = arr.indexOf(6)
console.log(arr3) // -1
17. arr.lastIndexOf() 从后往前查找某个元素的索引值,若有重复的,则返回第一个查到的索引值,若不存在,返回 -1
let arr = [1,2,3,4,5,4] let arr2 = arr.lastIndexOf(4)
console.log(arr2) // let arr3 = arr.lastIndexOf(6)
console.log(arr3) // -1
18. Array.from() [ES6]将伪数组变成数组,只要有length的就可以转成数组
let str = '12345'
console.log(Array.from(str)) // ["1", "2", "3", "4", "5"] let obj = {0:'a',1:'b',length:2}
console.log(Array.from(obj)) // ["a", "b"]
19. Array.of() [ES6]将一组值转换成数组,类似于声明数组
let str = '11'
console.log(Array.of(str)) // ['11'] 等价于
console.log(new Array('11')) // ['11] ps:
new Array()有缺点,就是参数问题引起的重载
console.log(new Array(2)) // [empty × 2] 是个空数组
console.log(Array.of(2)) // [2]
20. arr.find(callback) [ES6]找到第一个符合条件的数组成员
let arr = [1,2,3,4,5,2,4]
let arr2 = arr.find((value, index, array) => value > 2)
console.log(arr2) //
21. arr.findIndex(callback) [ES6]找到第一个符合条件的数组成员的索引值
let arr = [1,2,3,4,5]
let arr1 = arr.findIndex((value, index, array) => value > 2)
console.log(arr1) //
22. arr.includes() [ES6]判断数组中是否包含特定的值
let arr = [1,2,3,4,5] let arr2 = arr.includes(2)
console.log(arr2) // ture let arr3 = arr.includes(9)
console.log(arr3) // false let arr4 = [1,2,3,NaN].includes(NaN)
console.log(arr5) // true
23. arr.fill(target, start, end) [ES6]使用给定的值,填充一个数组(改变原数组)
参数: target – 待填充的元素
start – 开始填充的位置 - 索引
end – 终止填充的位置 - 索引(不包括该位置)
let arr = [1,2,3,4,5] let arr2 = arr.fill(5)
console.log(arr2) // [5, 5, 5, 5, 5]
console.log(arr) // [5, 5, 5, 5, 5] let arr3 = arr.fill(5,2)
console.log(arr3) // [1,2,5,5,5] let arr4 = arr.fill(5,1,3)
console.log(arr4) // [1,5,5,4,5]
24. arr.keys() [ES6]遍历数组的键名
let arr = [1,2,3,4,5]
let arr2 = arr.keys()
for (let key of arr2) {
console.log(key) // 0,1,2,3,4
}
25. arr.values() [ES6]遍历数组键值
let arr = [1,2,3,4,5]
let arr1 = arr.values()
for (let val of arr1) {
console.log(val); // 1,2,3,4,5
}
26. arr.entries() [ES6]遍历数组的键名和键值
let arr = [1,2,3,4,5]
let arr2 = arr.entries()
for (let e of arr2) {
console.log(e); // [0,1] [1,2] [2,3] [3,4] [4,5]
}
entries() 方法返回迭代数组。
迭代数组中每个值 前一个是索引值作为 key, 数组后一个值作为 value。
27. arr.copyWithin() [ES6]在当前数组内部,将制定位置的数组复制到其他位置,会覆盖原数组项,返回当前数组
参数: target --必选 索引从该位置开始替换数组项
start --可选 索引从该位置开始读取数组项,默认为0.如果为负值,则从右往左读。
end --可选 索引到该位置停止读取的数组项,默认是Array.length,如果是负值,表示倒数
let arr = [1,2,3,4,5,6,7] let arr2 = arr.copyWithin(1)
console.log(arr2) // [1, 1, 2, 3, 4, 5, 6] let arr3 = arr.copyWithin(1,2)
console.log(arr3) // [1, 3, 4, 5, 6, 7, 7] let arr4 = arr.copyWithin(1,2,4)
console.log(arr4) // [1, 3, 4, 4, 5, 6, 7]
28. Array.isArray(value) 判断一个值是否为数组的方法,若为数组,返回true,反之返回false
let a = 1234
let b = "fsaufh"
let c = {a:1,b:2}
let d = [1,2] let mark1 = Array.isArray(a)
console.log(mark1) // false let mark2 = Array.isArray(b)
console.log(mark2) // false let mark3 = Array.isArray(c)
console.log(mark3) // false let mark4 = Array.isArray(d)
console.log(mark4) // true
29. arr.join(separate) 把数组中的所有元素放入一个字符串,separate表示分隔符,可省略,默认是逗号
let arr = [1,2,3,4,5]
console.log(arr.join()) // 1,2,3,4,5
3 console.log(arr.join("")) // 12345
4 console.log(arr.join("-")) // 1-2-3-4-5
30. arr.flat(pliy) [ES6]对数组内嵌套的数组“拉平”,就是把数组中的数组的元素挨个拿出来,放数组元素所在位置,返回一个新的数组,不会影响到原来的数组
参数:pliy表示拉平的层数,默认是1层,想无限拉平可以传入Infinity关键字
let arr = [1, 2, [3, [4, 5]]]
console.log(arr.flat(2)) // [1, 2, 3, 4, 5] let arr2 = [1,[2,[3,[4,5]]]]
console.log(arr2.flat(Infinity)) // [1,2,3,4,5]
31. arr.flatMap() [ES6]对原数组的每个成员执行一个函数,相当于执行Array.prototype.map(),然后对返回值组成的数组执行flat()方法。该方法返回一个新数组,不改变原数组。只能展开一层数组。
// 相当于 [[2, 4], [3, 6], [4, 8]].flat()
[2, 3, 4].flatMap((x) => [x, x * 2])
// [2, 4, 3, 6, 4, 8]
32. arr.toString() 将数组转换为字符串并返回。数组中的元素之间用逗号分隔。
let arr = ["Banana", "Orange", "Apple", "Mango"]
console.log(arr.toString()) // Banana,Orange,Apple,Mango
JS数组方法(ES5、ES6)的更多相关文章
- 转载收藏(js数组方法大全)
js数组方法大全 JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组var arr2 = new Arra ...
- js 数组方法比较
js 数组方法比较 table th:first-of-type { width: 80px; } table th:nth-of-type(2) { width: 120px; } table th ...
- js数组方法详解
Array对象的方法-25个 /*js数组方法详解 */ /* * 1 concat() 用于连接多个数组或者值-------------- * 2 copyWithin() 方法用于从数组的指定位置 ...
- js数组方法大全(上)
# js数组方法大全(上) 记录一下整理的js数组方法,免得每次要找方法都找不到.图片有点多,注意流量,嘻嘻! 本期分享 join() reverse() sort() concat() slice( ...
- js数组方法大全(下)
# js数组方法大全(下) 记录一下整理的js数组方法,免得每次要找方法都找不到.图片有点多,注意流量,嘻嘻! 本期分享 forEach() map() filer() every() some() ...
- 几个关于js数组方法reduce的经典片段
以下是个人在工作中收藏总结的一些关于javascript数组方法reduce的相关代码片段,后续遇到其他使用这个函数的场景,将会陆续添加,这里作为备忘. javascript数组那么多方法,为什么我要 ...
- js数组方法详解(最新最全)
数组是js中最常用到的数据集合,其内置的方法有很多,熟练掌握这些方法,可以有效的提高我们的工作效率,同时对我们的代码质量也是有很大影响.本文所有的栗子都是在es7环境下测试的,如果有问题欢迎留言交流 ...
- JS数组方法汇总 array数组元素的添加和删除
js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^ var arr = new Array(); arr[0] = "aaa"; arr[ ...
- js 数组方法总结
Array数组: length属性 可通过array.length增加或者减少数组的长度,如;array.length=4(数组长3,第四位为undefined),也可单纯获得长度.array[arr ...
- js数组方法大全
JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组var arr2 = new Array(20); // ...
随机推荐
- 机器学习回顾篇(15):集成学习之GDBT
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- Java中SMB的相关应用
目录 SMB 服务操作 Ⅰ SMB简介 Ⅱ SMB配置 2.1 Windows SMB Ⅲ 添加SMB依赖 Ⅳ 路径格式 Ⅴ 操作共享 Ⅵ 登录验证 SMB 服务操作 Ⅰ SMB简介 SMB(全称 ...
- C++内存管理与注意事项
内存是程序运行必不可少的资源,由操作系统分配和管理.作为程序员,我们通常做的只能是申请和归还.本文主要介绍C++内存的申请和释放(归还),以及注意事项. 1 申请和释放内存的运算符 申请 new 释放 ...
- 1-3课 介绍虚拟化技术、在虚拟机中安装windows7
虚拟化技术 可以使我们在同一台计算机上运行多个操作系统 用于教学环境 用于测试环境 和硬件无关 可移植到其他电脑直接使用 Ptov技术 不支持VtoP 节省管理成本 节省硬件投资 不用买设备 省 ...
- 第二次团队作业-需求分析(By七个小矮人)
第二次团队作业-需求分析 一.格式描述 这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/ 这个作 ...
- 创建dynamics CRM client-side (十二) - HTML Web Resource
HTML Web Resource是我们经常使用的一个功能. 第一步, 我们先创建好一个HTML. 接下来,我们要在web resource中创建新的html web resource. 我们在tex ...
- 史上最详细的二叉树、B树,看不懂怨我
今天我们要说的红黑树就是就是一棵非严格均衡的二叉树,均衡二叉树又是在二叉搜索树的基础上增加了自动维持平衡的性质,插入.搜索.删除的效率都比较高.红黑树也是实现 TreeMap 存储结构的基石. 1.二 ...
- 在windows中python安装sit-packages路径位置 在Pycharm中导入opencv不能自动代码补全问题
在Pycharm中导入opencv不能自动代码补全问题 近期学习到计算机视觉库的相关知识,经过几个小时的探讨,终于解决了opencv不能自动补全代码的困惑, 我们使用pycharm安装配置可能会添加多 ...
- 华硕win10U盘重装系统进入pe
1.先要制作一个U盘的PE启动盘,建议使用WIN8 PE 2.将制作好的PE启动盘接上电脑,开机按F2键进入BIOS ,先将[Secure]菜单下[Secure Boot Control]选项设置为[ ...
- Day7-Python3基础-面向对象进阶
内容: 面向对象高级语法部分异常处理 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 Socket开发基础 面向对象高级语法部分 静态方法 通过@staticmethod ...