美文网首页大前端从入门到跑路
【es6经典语法】数组的用法

【es6经典语法】数组的用法

作者: brandonxiang | 来源:发表于2018-12-09 19:50 被阅读7次

在这个Typescript流行的年代,我们为什么还要学习es6语法?es全名叫做ECMAScript,拥有浏览器最正统的血统,预示着未来浏览器语言的发展方向。

ECMAScript的语法,每年都有新的提案,每年都在更新,代码的转义离不开babel。这篇博客不讲高深的语法,只会讲一下有趣的用法,请先查考阮一峰ECMAScript 6 入门

解构1

function joinString(...str){
  return str.join(',')
}
joinString('1','2','3')
// "1,2,3"

...大家都熟悉的解构用法,但是在函数的入参时候使用很少。对于数组类型的参数有着非常有趣的效果。

解构2

我们经常会遇到一个问题,就是这个对象(或数组),有几个属性不要,构造成为一个新对象。

const arr = [1,2,3,4,5,6]
const [one, two, ...rest] = arr

map,reduce,filter,some

这几个函数在数据处理上是非常常见的。在不考虑引入lodash的情况下,js的数据处理应该都是由这些数组函数完成。但是很多同学都只会使用forEach。

举个栗子,把一串小写字符数组改写大写字符数组,很多同学上来就是一个循环。

const lowerStr = ['a', 'b', 'c']
const upperStr = []
lowerStr.forEach((i) => {
   upperStr.push(i.toUpperCase())
})
//["A", "B", "C"]

map可以看作一个映射关系,但是“生成数组”与“原数组”没有太多联系,结果是新创建的数组地址,js中对象和数组的修改会带来非常多潜在的问题。

const lowerStr = ['a', 'b', 'c']
const upperStr = lowerStr.map((i) => i.toUpperCase())

reduce是递归的数据处理。现在给你个问题,写个函数“把多个数组合并成为一个数组”。如果不用reduce,这个循环可能会写得很繁琐。

const arrays = [['1', '2','3'], ['4', '5'], ['6', '7', '8']]
const array = arrays.reduce((a, b) => a.concat(b))

当然这种情况,你也可以使用flat

const arrays = [['1', '2','3'], ['4', '5'], ['6', '7', '8']]
const array = arrays.flat()

filter非常常见,应该和find, findIndex都是数组处理的必备。例如,我想把"工资一千以上的男生"从数组中筛选出来。

const salary = [
  {sex: 'male', money: 1000},
  {sex: 'female', money: 2000},
  {sex: 'male', money: 1500},
]
const result = salary.filter(s=>s.sex === 'male')
                                .filter(s=>s.money > 1000)

some用在循环的性能优化有着立竿见影的效果。数据处理中的循环是要非常谨慎的。some能够帮助我们有效减少循环。如果我有六个数,我想输出1到3,剩下的不想循环。

const numbers = [1,2,3,4,5,6]
numbers.some(i => {
  if(i<4){
    console.log(i)
    return false
  }
  return true
})

Last but not the least

关注这个专题大前端从入门到跑路,欢迎你们投稿。

相关文章

  • 【es6经典语法】数组的用法

    在这个Typescript流行的年代,我们为什么还要学习es6语法?es全名叫做ECMAScript,拥有浏览器最...

  • React 初识—— JSX 语法、组件用法

    JSX 语法 变量的定义及使用 条件判断 数组循环 组件用法 下面代码中依据 ES6 的方式定义组件;React ...

  • ES6 数组方法

    ES6 以下是个人对ES6 数组方法的理解和学习 map() 用法 : filter() forOf遍历方法 ​ ...

  • 2018-08-22

    es6中数组的几种循环 对于数组循环,之前我们常用的方式就是:for,while等语法。但是在es6中我们可以尝试...

  • JS优雅写法记录

    1、ES6语法篇 2、js简洁写法 3、js数组篇

  • webpack解惑:require的五种用法

    "webpack解惑:require的五种用法" commonjs同步语法 经典的commonjs同步语法如下: ...

  • 看Vue2.0及数字商城电商开发

    Vue2.0在标签中可以使用驼峰命名法,区分大小写 ES6语法1: 等价于 ES6语法2: 等价于 数组更新检测:...

  • Java知识之数组

    Java数组知识图如下: 数组基本用法 声明数组声明数组语法格式: 初始化数组Java中使用关键字new创建数组对...

  • javascript/jquery-遍历数组/对象的几种方式

    遍历数组/对象的几种方式 常用的方法:for、for in、for of(es6语法)、forEach、map、f...

  • 2017-07-11

    ES6基础语法 基础用法 let 用来声明变量 它的用法类似于var,但是所声明的变量,只在let命令所在...

网友评论

    本文标题:【es6经典语法】数组的用法

    本文链接:https://www.haomeiwen.com/subject/oiekhqtx.html