Ich versuche, die Es6-Syntax für dieses Codefragment arbeiten zu lassen.Verwenden von Spread-Notation in Array.reduce
let checkList = [1, 2].map(i => "Check " + i)
let checks = checkList
// .reduce((acc, check) => Object.assign(acc, {[check]: {valid: false}}), {})
.reduce((acc, check) => {...acc, {[check]: {valid: false}}}, {})
console.log(checks)
Der Ausgang, wenn ich die Kommentarzeile in https://babeljs.io verwenden, wie unten und das ist, was ich die neue Syntax erhalten möchten.
Object {
"Check 1": Object {
"valid": false
},
"Check 2": Object {
"valid": false
}
}
Ich bin nicht sicher, ob es einen Syntaxfehler in diesem Code gibt. Ich habe versucht, alle Presets in Babeljs auszuwählen, aber es kompiliert nicht richtig.
Es ist nicht ES6 Syntax. Sie können die Spreizsyntax nicht in Objektliteralen verwenden. Es ist eine experimentell vorgeschlagene Syntax. – Bergi
Mögliches Duplikat der [ECMAScript6 Pfeilfunktion, die ein Objekt zurückgibt] (https://stackoverflow.com/questions/28770415/ecmascript6-arrow-function-that-returns-an-object) – Bergi