解构对象

/**
* 解构:快捷,方便
*
* 对象解构
*/ {
var expense = {
type: "es6",
amount: "45"
}; //1.ES5
// var type = expense.type;
// var amount = expense.amount;
// console.log(type, amount); //output: es6 45 //2.ES6
const { type, amount, abc } = expense;
console.log(type, amount, abc); //output: es6 45 undefined
} { var saveFiled = {
extension: "jpg",
name: "girl",
size: 14040
}; //ES5
function fileSammary1(file) {
return `${file.name}.${file.extension}的总大小是${file.size};`
} //ES6
//名字不能变,位置可以乱
function fileSammary2({ name, size, extension }) {
return `${name}.${extension}的总大小是${size};`
} console.log(fileSammary1(saveFiled)); //output: girl.jpg的总大小是14040;
console.log(fileSammary2(saveFiled)); //output: girl.jpg的总大小是14040;
}

其他参考:ECMAScript6 - 2.变量的解构赋值

解构数组

/**
* 解构:快捷,方便
*
* 数组解构
*/ /**
* 基础
*/
{
const names = ["Henry", "Bucky", "Emily"];
const [name1, name2, name3] = names;
console.log(name1, name2, name3); //用对象接收,反数组个数
const { length } = names;
console.log(length); // 3 //结合张开运算符
const [name, ...rest1] = names;
console.log(name); // Henry
console.log(rest1); //(2) ["Bucky", "Emily"] let [foo, [[bar], baz]] = [1, [[2], 3]];
foo; // 1
bar; // 2
baz; // 3
} /**
* 数组中的对象
*/
{
//对象数组
const people = [
{ name: "Henry", age: 20 },
{ name: "Bucky", age: 25 },
{ name: "Emily", age: 30 }
]; // ES5
//读取数据元素中的对象参数值
{
var age = people[0].age;
age; // 20
} // ES6
{
//读取数组的元素
{
const [age1, , age] = people;
console.log(age1); // { name: "Henry", age: 20 },
console.log(age); // { name: "Emily", age: 30 }
} //读取数组元素中的对象参数值
{
const [{ age }] = people;
console.log(age); // 20
}
} //数组转化为对象
{
const points = [
[4, 5], [10, 20], [0, 100]
]; /**
* 期望数据格式:
* [
* {x:4,y:5},
* {x:10,y:20},
* {x:0,y:100}
* ]
*/ let newPoints = points.map(([x,y])=>{
//1.传入解构 [x,y] = [4,5]
//2.x = 4, y = 5
//3.return {x:x,y:y} 简写 return {x,y}
return {x,y};
}) console.log(newPoints);
}
}

ES6 - 解构(数组和对象)的更多相关文章

  1. ES6 解构对象和数组

    1.解构对象 let saveFiled = { extension: "jpg", name:"girl", size:14040 }; ES5 functi ...

  2. 【ES6 】ES6 解构赋值--数组解构赋值

    定义 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构 数组的解构赋值 以前,为变量赋值,只能直接指定值. let a = 1; let b = 2; let c = 3; ...

  3. ES6解构赋值

    前面的话 我们经常定义许多对象和数组,然后有组织地从中提取相关的信息片段.在ES6中添加了可以简化这种任务的新特性:解构.解构是一种打破数据结构,将其拆分为更小部分的过程.本文将详细介绍ES6解构赋值 ...

  4. es6 解构赋值

    ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). 关于给变量赋值,传统的变量赋值是这样的: var arr = [1,2,3];//把数组的值 ...

  5. ES6 解构 destructuring

    解构的作用:简化书写长度,提升开发效率. 解构对象 在开发中我们常用到使用ajax请求数据,并且把数据渲染到页面上.可能这个数据返回的对象或数组.例如返回一个obj{name:'zwq',age:18 ...

  6. ES6解构赋值常见用法

    解构赋值出现的契机: let obj = { a: 1, b: 2 } // 取值 let a = obj.a let b = obj.b 问题核心: 每次取值既要确定对象属性名,还得重新定义一个变量 ...

  7. ES6解构赋值详解

    文章转载自:http://www.zhufengpeixun.cn/article/167 解构赋值(destructuring assignment)语法是一个 Javascript 表达式,这种语 ...

  8. ES6 解构

    { "code": 200, "msg": "success", "data": { "total" ...

  9. ES6解构

    解构:“解开--重构” 1.数组的解构: //数组的解构: // let arr=[1,2,3,6] // let[a,b,c,d]=arr; // console.log(a,b,c,d)// 1, ...

随机推荐

  1. 连接mysql报"ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server"

    最近在服务器上部署好的应用突然间连接不上mysql数据库,报错“ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this M ...

  2. 记使用pyspider时,任务不执行的问题原因:save太大。

    pyspider使用save传递大量文本时,如果是mysql数据库,有可能出现问题,因为任务表默认用的blob字段.字符数是有限制的. 解决办法就是手动把字段类型改成longblob. 希望作者能直接 ...

  3. /bin/false 和 /usr/sbin/nologin

    比较常用的用法: #添加一个不能登录的用户 useradd -d /usr/local/apache -g apache -s /bin/false apache 要拒绝系统用户登录,可以将其shel ...

  4. JavaFX 学生登陆表格

    利用JavaFX实现一个学生登陆的界面,其中包括各种JavaFX组件的使用,利用焦点变动自动检测内容的合法性和监控文本输入以及页面的跳转,具体代码如下: /* * To change this lic ...

  5. [原创]VBA实现汇总excel,将多个Excel文件内容复制到一个Excel文件中

    功能:遍历用户指定的文件夹,把文件夹中所有的excel文件的第一个表格的数据复制到本excel文件中.注意,每个excel文件中有效数据行的判断标准是A列的最后一个有数据的单元格的行号,比如A列到第1 ...

  6. 201671010436 王雪刚 实验十四 团队项目评审&课程学习总结

    一:实验名称:团队项目评审&课程学习总结 二:实验目的与要求 (1)掌握软件项目评审会流程: (2)反思总结课程学习内容. 三:实验步骤 任务一:按照团队项目结对评审名单,由项目组扮演乙方,结 ...

  7. 2019牛客暑期多校训练营(第八场)E:Explorer(LCT裸题 也可用线段树模拟并查集维护连通性)

    题意:给定N,M,然后给出M组信息(u,v,l,r),表示u到v有[l,r]范围的通行证有效.问有多少种通行证可以使得1和N连通. 思路:和bzoj魔法森林有点像,LCT维护最小生成树.  开始和队友 ...

  8. 创建Maven之后,Java包下无法直接创建servlet的原因:

    ---恢复内容开始--- 没有导入servlet-api的依赖,导入完依赖就可以直接创建了   依赖如下:   <dependency> <groupId>javax.serv ...

  9. 请找出"aaaabbcccdddd"字符串中出现最多的字母

    function getCount(str) { for(var code=32;code<128;code++){ var mych=String.fromCharCode(code); va ...

  10. 洛谷P2038 无线网络发射器选址

    题目描述 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平行的 \(129\) 条东西向街道和 \(129\) 条南北向街道所形 ...