在ES5到對象,我知道它可以分配以下面的方式使用forEach
循環方法的對象:分配方法通過迭代數組
var myMethods = [
{
name: 'start',
src: someFn
},
{
name: 'stop',
src: someOtherFn
}
];
var myObject = {};
myMethods.forEach(function(method) {
myObject[method.name] = method.src;
});
在ES2015(或ES6),是可以通過創建對象來定義這些方法嗎?下面是我怎麼可能想到這個工作的例子:
// example
const myObject = {
[...myMethods.map((method) => method.name)]: [...myMethods.map(method) => method.src)]
}
最終的結果是這樣的:
const myObject = {
start: someFn,
stop: someOtherFn
}
如果有是遍歷這些方法併爲它們分配方式到myObject
,我會高興地重組myMethods
陣列,以便這是可能的。
最終目標是能夠在外部模塊中分配這些方法中的每一個,而不必重複定義。
A +很好的單行和詳細的解釋 – naomik
切勿在生產中使用此代碼。這很好,它可以用幾個符號來完成,但是它浪費了大量的計算機時間來創建不必要的對象:http://jsperf.com/assign-vs-reduce/4對於這種情況,Reduce可能更好 –