理解

时间:2016-10-23 13:50:02

标签: javascript

通过Atom的源代码,我发现了for..of语句的使用:

for (const {name, duration, x} of results) {
    dataByBenchmarkName[name] = dataByBenchmarkName[name] || {points: []}
    dataByBenchmarkName[name].points.push({x, y: duration})
}

我正在尝试在终端中复制此迭代,但块永远不会执行(好像我错过了一个括号)。我试过迭代对象(浅,深)和数组。当我拿出大括号时,语句按照记录的方式工作。谁能给我一个带括号的工作实例来学习?简单的事情:

var test = ...; 
for(var {x,y,z} of test) {
    console.log(x);
};

由于

2 个答案:

答案 0 :(得分:6)

大括号仅适用于destructuring assignment。 这对我有用:

var test = [{x:1,y:2,z:4}, {x:5, y:6,z:7}]; 
for(var {x,y,z} of test)
   console.log(x,y,z);

输出:

1 2 4
5 6 7

答案 1 :(得分:2)

这有效

var test = [{x:1,y:3,z:2},{x:5,y:6,z:3}]
for(var {x,y,z} of test) {
    console.log(x);
}