我一直在阅读 Javascript 的新功能并注意到 Array Comprehension 的东西。我已经在我当前的项目中尝试过这个,但似乎 Visual Studio 不喜欢这种语法。我做错了吗?
var destArray = [{propOne: val, propTwo:val} for (val of sourceArray)];
我一直在阅读 Javascript 的新功能并注意到 Array Comprehension 的东西。我已经在我当前的项目中尝试过这个,但似乎 Visual Studio 不喜欢这种语法。我做错了吗?
var destArray = [{propOne: val, propTwo:val} for (val of sourceArray)];
这实际上是即将发布的 ES2016 规范的一部分,而不是 ECMAScript 5(您的问题最初是用ecmascript-5标记的)。
根据这个和MDN 文档,您实际上需要将for
部分放在开头,而不是结尾:
var destArray = [ for (val of sourceArray) { propOne: val, propTwo: val } ];
就像 Python 等其他语言一样,您还可以包含多个 for 循环和 if 语句:
var numbers = [1,2,3,4,5,6,7,8,9,10];
var even = [ for (val of numbers) if (val % 2 === 0) val ];
请注意,大多数文本编辑器和 IDE 尚不支持这些新语言功能的语法突出显示,因此在将来提供更多支持之前,突出显示/着色可能看起来很奇怪。