Ecmascript 6 ES6数组理解是否不再有效?

Ecmascript 6 ES6数组理解是否不再有效?,ecmascript-6,Ecmascript 6,下面的ES6代码段无效。它过去是有效的。我仍然可以在旧版本的Traceur中运行它,但最新的Babel和Traceur似乎不再喜欢数组中的for循环。谁能告诉我为什么它不再有效 let people = [ { "firstName": "Belinda", "phone": "1-607-194-5530", "email": "dignsissim.Maecenas.ornare@lacusAliquam.co.uk" },

下面的ES6代码段无效。它过去是有效的。我仍然可以在旧版本的Traceur中运行它,但最新的Babel和Traceur似乎不再喜欢数组中的for循环。谁能告诉我为什么它不再有效

let people = [
    {
        "firstName": "Belinda",
        "phone": "1-607-194-5530",
        "email": "dignsissim.Maecenas.ornare@lacusAliquam.co.uk"
    },
    {
        "firstName": "Elizabeth",
        "phone": "1-155-446-1624",
        "email": "cursus.et.magna@nislsemconsequat.edu"
    }
]

let phones = [for({phone} of people) phone];
console.log(phones)
下面的代码段是有效的ES6,所以我知道for循环中的销毁是可以的

for(let {phone} of people) {
  console.log(phone)
}
谁能告诉我为什么它不再有效

let people = [
    {
        "firstName": "Belinda",
        "phone": "1-607-194-5530",
        "email": "dignsissim.Maecenas.ornare@lacusAliquam.co.uk"
    },
    {
        "firstName": "Elizabeth",
        "phone": "1-155-446-1624",
        "email": "cursus.et.magna@nislsemconsequat.edu"
    }
]

let phones = [for({phone} of people) phone];
console.log(phones)
数组理解没有进入ES6的最终版本,下一个版本似乎也没有考虑它:

数组理解是。这本书没有提到理解,所以很可能被删掉了。通过电子邮件列表档案的快速搜索,发现任何确定的内容都是空的

作为更详细的替代方案,还有(ES7中的一个特性)和
Array.prototype.map

let emails = people.map(({ email }) => email);
有助于:

最初,ES6将包含数组和生成器 (类似于Haskell和Python)。但是他们被推迟到之后 ES6,因为TC39想探索两条途径:

  • 也许可以创造出对任意语言有用的理解 数据类型(比如微软的LINQ)
  • 也有可能 迭代器方法是实现理解的更好方法 做

这是一个,这是一个从未在ES6/ES2015中登陆的实验性方案,或者:
Array.from(people,({email})=>email)将与任何iterable一起使用。为什么
对象。条目
people
是一个数组,您需要一个简单的
people.map(=>\uu.email)
谢谢@bergi。我真的不能说。不知什么原因,我疲惫的眼睛使人成为一个物体。我更新了代码段。在数学意义上理解为集合构建器是Python的一个惊人的特性-数学语法与Python非常接近,那么对于那些使用与Python相同的语法有什么不好的呢。。。它已经在无数的项目中得到了发展和测试。“既然如此强大的工具已经奏效了,为什么还要重新发明车轮呢?”阿尔伯特·贾梅斯蒂迪说,因为木制货车车轮在公路上不太好用。人们仍在发明新的轮子: