845得票10回答
如何将Set转换为Array?

Set似乎是创建保证唯一元素的数组的好方法,但它不公开任何好的获取属性的方式,除了生成器[Set].values之外,该生成器的调用方式很尴尬,即mySet.values.next()。 如果您可以在集合上调用map和类似函数,那么这将是可以接受的。 但是您也不能这样做。 我尝试过Arra...

667得票25回答
如何克隆 JavaScript 对象但排除一个键?

我有一个扁平的JS对象:{a: 1, b: 2, c: 3, ..., z:26} 我想要克隆这个对象,除了一个元素以外:{a: 1, c: 3, ..., z:26} 如果可能的话,怎样用 ES6/7 最简单地完成这个任务呢?

501得票9回答
在ECMAScript 6中,何时应该使用箭头函数?

在ES6中,使用() => {}和function () {}两种方式可以编写函数。在其他语言中,Lambda函数通常通过匿名来区分自己,但在ECMAScript中,任何函数都可以是匿名的。这两种类型各自具有独特的用法领域(即当this需要显式绑定或显式不绑定时)。在这些领域之间,存在大...

427得票8回答
将符号引入ES6的动机是什么?

更新:最近Mozilla发布了一篇精彩文章。如果你好奇的话可以去读一下。 正如你所知,ECMAScript 6计划添加新的Symbol原始类型(更别说其他一些疯狂的东西了)。我一直认为Ruby中的`:symbol`概念是不必要的;我们可以像在JavaScript中一样使用普通字符串。而现在他...

276得票11回答
如何为JavaScript Set自定义对象相等性

ES 6(Harmony)引入了新的Set对象。Set使用的身份算法类似于===运算符,因此不太适合比较对象。 var set = new Set(); set.add({a:1}); set.add({a:1}); console.log([...set.values()]); // Ar...

256得票24回答
ES6(ECMAScript 6)中是否有一种不使用可变变量来循环x次的机制?

在 JavaScript 中循环 x 次的典型方式是:for (var i = 0; i < x; i++) doStuff(i); 但是我不想使用 ++ 操作符或任何可变变量。那么在 ES6 中,有没有其他的方法可以循环 x 次?我喜欢 Ruby 的机制: 但是我不想使用 ++ ...

187得票3回答
使用函数式方法迭代范围(ES6/7)

如何用ES6/ES7更加函数化地实现下面的操作?let cols = []; for (let i =0; i <= 7; i++) { cols.push(i * i); } return cols; 我尝试过,就像这样:return [ ...7 ].map(i => {...

178得票13回答
ES6中从对象中获取一些属性的单行代码

如何使用ES6以最简洁的方式编写一个只接受少量属性的函数?我已经想到了使用解构和简化对象字面量的解决方案,但我不喜欢在代码中重复列出字段。 是否有更简洁的解决方案?(v) => { let { id, title } = v; return { id, title }; }

148得票6回答
ES6对象中的方法:使用箭头函数

在ES6中,这两种写法都是合法的:var chopper = { owner: 'Zed', getOwner: function() { return this.owner; } }; 并且,作为一种简写:var chopper = { owner: 'Zed', ...

140得票1回答
JavaScript双冒号(绑定运算符)

如您所知,有一个提案为.bind()函数提供了一种快捷方式,因此您可以这样编写:::this.handleStuff 它将在ES5中以这种方式工作:this.handleStuff.bind(this) 我的问题是:这种方式是否可以传递参数? 我的意思是用上述快捷方式来编写代码时,是否可以传...