Translate-CS 板


LINE

原文网址:http://www.2ality.com/2013/02/foreach-es6.html 译文网址:http://blog.dontcareabout.us/ 2013/03/ecmascript-6-destructuring-foreach.html BBS 版以 markdown 撰写,请见谅 Orz __________________________________________________________________ > # ECMAScript 6 的参数 destructuring 功能与 forEach() # 这篇文章会简单介绍 ECMAScript 6(以下简称 ES6) 的 destructuring、 以及这个功能对 `forEach()` 这个 array method 的好处。 destructuring ------------- ES6 允许你作 destructure(译注:可翻成解构)的动作: 赋予值的对象可以是一个 pattern, 让你在赋予值的来源值中找寻这个 pattern 然後以此给值。 下面这个例子在宣告变数时使用 destructuring: > let { first: f, last: l } = { first: 'Jane', last: 'Doe' }; > f 'Jane' > l 'Doe' 下面这个例子是交换 `x` 跟 `y` 的值: [x,y] = [y,x] destructuring 也可以用在参数。 下面这个 function 有两种参数: 第一种参数是 positional(辨别位置)、 其他的参数是 named(辨别名称)包在一个叫做 `options object` 里头 (就是实际上的第二个参数): function foo(positional, { named1, named2 }) { return [ positional, named1, named2 ]; } 使用这个 function 的方式: > foo(123, { named1: 'abc', named2: 'def' }) [ 123, 'abc', 'def' ] > foo(123, { named2: 'def', named1: 'abc' }) [ 123, 'abc', 'def' ] 两个参数(`positional` 与 `named`)都可以指定 default 值, 而变成可有可无的参数 [Ref.1]。 destructuring 与 `forEach()` ---------------------------- 在 ES6 当中,destructuring 参数对於 `Array.prototype.forEach()` 是很有用的。 举个例子: let items = [ ['foo', 3], ['bar', 9] ]; items.forEach(([word, count]) => console.log(word+' '+count)); 上面 `forEach()` 的传入值是一个 `arrow function`, 这个撰写 function 表示式的简洁方式是 ES6 的新功能 [Ref.2]。 array 的 element 也可以是 object: let items = [ {word:'foo', count:3}, {word:'bar', count:9} ]; items.forEach(({word, count}) => console.log(word+' '+count)); object 的 literal { word, count } 是下面这个语法的简写: { word: word, count: count } 因此,你也可以把上面的回圈写成 items.forEach(({word: w, count: c}) => console.log(w+' '+c)); 备注:ES6 有新的 `for-of` 回圈也可以用 destructuring [Ref.3]: for ([word, count] of items) { console.log(word+' '+count); } [Ref.1]: http://www.2ality.com/2011/11/keyword-parameters.html [Ref.2]: http://www.2ality.com/2012/04/arrow-functions.html [Ref.3]: http://www.2ality.com/2012/06/for-of-ff13.html -- 钱锺书: 说出来的话 http://www.psmonkey.org 比不上不说出来的话 Java 版 cookcomic 版 只影射着说不出来的话 and more...... --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.25.16.4







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP