美文网首页前端开发es6入门基础
ES6基础入门教程(五)让数据解构充满想象力

ES6基础入门教程(五)让数据解构充满想象力

作者: 党云龙 | 来源:发表于2019-10-29 16:01 被阅读0次

有话说在前面


前面我们学习了如何通过遍历来解构数据,好吧,如果我每次一ajax来的数据,都正好是一个一维数组,那我确实一个for就可以搞定了。

可是事实呢?强大的php程序员从一个接口给我把首页所有数据全查出来了。我们需要面对的是一个无比复杂的json数据。

如果真实情况是这样,我们该怎么办??

插上想象力的翅膀


我们大胆设想,如果我不告诉你用for可以遍历对象。就好比,我不告诉你地球是圆的,你会怎么样去理解这个世界??

我们能不能,创造一个,我理想中的世界,然后让它去和现实世界无缝对接?

来看这个es5里面的例子:

// 直接结构数据
let arr=["hello","world",1]
//es5
console.log(arr[0]);

在es5中,获取array中的第一个元素,需要通过下标例如arr[0]

这种写法本身就十分的不合理,再es6中使用以下写法:

let [a,b,c,d,e] = arr;
//es6
console.log(a);
console.log(b);
console.log(c);

这种写法就是这么得意,你看你的目标对象是什么样的格式,他如果是数组种套数组,你就用数组套数组去解构,如果是对象,你就按照对象的写法去解构。

例如:解构数组嵌套数组

let arr = [1,2,3,[5,6],7,8]
let [a,b,c,[d,e],f,g] = arr;

console.log(d);

例如:循环中解构
石破惊天! 这个解构方法真是充满了想象力。要是在过去,你特么没有两个循环你别想搞定!

let arr = [[1,2],[3,4],[5,6]]

for(let [a,b] of arr){
    console.log(a);
    console.log(b);
}

解构对象:

// 需要解构的json
let json={
    name:"学员1",
    reg:"25",
    pass:"aabbcc"
}

// 解构的内容 name,reg,pass必须跟json中的key对应
// 使用第一种方式解构,会自从创建let name/reg/pass
let {name,reg,pass} = json;
console.log(name);
console.log(reg);
console.log(pass);
// 使用第二种方式解构 不会创建name/reg/pass 但是会创建a/b/c 并赋值
let {name:a,reg:b,pass:c} = json;
console.log(name);
console.log(reg);
console.log(pass);
// 可以继续使用a
a=1;
console.log(a);

// 复杂的数据
let json2=[{
    name:"学员1",
    reg:"25",
    pass:"aabbcc"
},{
    name:"学员2",
    reg:"37",
    pass:"bbbbbb"
}]

for(let {name,reg,pass} of json2){
    console.log(name);
    console.log(reg);
    console.log(pass);
}

惊不惊喜,意不意外?es6主要通过强大的数据遍历体系和扩展运算符来实现数据解构,让我们在接下来的教程中深入体会吧!

相关文章

  • ES6基础入门教程(五)让数据解构充满想象力

    有话说在前面 前面我们学习了如何通过遍历来解构数据,好吧,如果我每次一ajax来的数据,都正好是一个一维数组,那我...

  • 第5章 解构(destructure)

    解构(Destructure) 解构是ES6新添加的一种功能,解构是指将复杂的数据结构拆分为小的部分。ES6添加了...

  • 五: 解构: 更方便的数据访问

    前言 该部分为书籍 深入理解ES6 第五章(解构: 更方便的数据访问)笔记 解构的作用 把数据结构分解为更小的部分...

  • ES6文集的目录

    基础 变量的解构赋值扩展运算符箭头函数export与import 数据类型 引用数据类型 ES6的数组数组之Arr...

  • 数组解构、混合结构以及参数结构

    《深入理解ES6》阅读随笔 数组解构 数组解构跟对象解构类似,同样具有数据提取、解构赋值、设置默认值、嵌套解构等特...

  • ES6基础入门教程(四)简单的数据解构

    数据解构 我记得我曾经在解释mvc和mvvm区别的文章里,不止一次说过,区别mvc和mvvc必须要搞清楚route...

  • ES6

    ES6: ES6 新语法 1.变量 解构赋值 (解构赋值对应的python里的序列解包) 解构赋值方式一: 解构赋...

  • ES6解构

    1. 数组解构赋值 2.对象赋值解构 摘自:妙用ES6解构和扩展运算符让你的代码更优雅

  • 记录:es6新增数组去重的方法:Set()

    ...es6的解构

  • ES6 新特性:解构

    解构:使数据访问更加便捷 解构:结构是一种打破数据结构,将其拆分成更小部分的过程。 在ES6之前,为了从对象和数组...

网友评论

    本文标题:ES6基础入门教程(五)让数据解构充满想象力

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