网站首页 > 技术文章 正文
前言
本文主要从应用来讲数组api的一些骚操作,如一行代码扁平化n维数组、数组去重、求数组最大值、数组求和、排序、对象和数组的转化等。
上面这些应用场景你可以用一行代码实现吗?
1、扁平化n维数组
终极篇
开始篇
实质是利用递归和数组合并方法 concat实现扁平。
2、去重
终极篇
set是ES6新出来的一种一种定义不重复数组的数据类型。
Array.from是将类数组转化为数组。
...是扩展运算符,将set里面的值转化为字符串。
开始篇
取新数组存值,循环两个数组值相比较。
3、排序
终极篇
sort是js内置的排序方法,参数为一个函数
开始篇
冒泡排序:
选择排序:
4、最大值
终极篇
Math.max()是 Math对象内置的方法,参数是字符串。
reduce是ES5的数组api,参数有函数和默认初始值。
函数有四个参数:
- pre:上一次的返回值
- cur:当前值
- curIndex:当前值索引
- arr:当前数组
开始篇
先排序再取值。
5、求和
开始篇
利用 slice截取改变数组,再利用递归求和。
6、合并
终极篇
开始篇
7、判断是否包含值
终极篇
includes()、 find()、 findIndex()是ES6的api。
开始篇
8、类数组转化
终极篇
类数组:表示有 length属性,但是不具备数组的方法。
call、 apply:改变 slice里面的 this指向 arguments,所以 arguments也可调用数组的方法。
Array.from:将类似数组或可迭代对象创建为数组。
...:将类数组扩展为字符串,再定义为数组。
开始篇
9、每一项设置值
终极篇
fill是ES6的方法。
开始篇
10、每一项是否满足
every是ES5的api,,每一项满足返回 true。
11、有一项满足
some是ES5的api,有一项满足返回 true。
12、过滤数组
filter是ES5的api,返回满足添加的项的数组。
13、对象和数组转化
编辑:千锋web前端
原文作者:火狼,https://segmentfault.com/a/1190000018549643
猜你喜欢
- 2024-10-11 js中传统和es6方式 实现数组去重(js数组去重方法es6)
- 2024-10-11 重读《学习JS数据结构与算法-第三版》- 第3章 数组 二
- 2024-10-11 ES6的这些操作技巧,你会吗(es6 教程)
- 2024-10-11 Es6基础语法(es6的语法有哪些)
- 2024-10-11 ES6之扩展运算符的精彩操作(...扩展运算符)
- 2024-10-11 JS面试之数组的几个不low操作(js 数组面试题)
- 2024-10-11 数组的扩展(数组扩展长度的方法)
- 2024-10-11 ES6中Array数组你应该知道的操作(es6数组排序的方法)
- 2024-10-11 ES6 数组的遍历方法最重要的不在代码本身,而是语义化!
- 2024-10-11 ES6 数组解构赋值(es6 结构赋值)
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)