use*_*695 2 javascript ecmascript-6
有一个像这样的对象数组:
const schema = [
{ placeholder: 'Title', name: 'title' },
{ placeholder: 'Authors', name: 'author' },
{ placeholder: 'Publisher', name: 'publisher', optional: true },
{ placeholder: 'Edition', name: 'edition', optional: true }
]
Run Code Online (Sandbox Code Playgroud)
现在我想得到一个所有name字段作为键值的对象1:
result = { 'title': 1, 'author': 1, 'publisher': 1, 'edition': 1 }
Run Code Online (Sandbox Code Playgroud)
我尝试使用map,但是
schema.map(o => { return o.name })
Run Code Online (Sandbox Code Playgroud)
给我一个数组:
['title', 'author', 'publisher', 'edition']
Run Code Online (Sandbox Code Playgroud)
你需要 reduce
const schema = [
{ placeholder: 'Title', name: 'title' },
{ placeholder: 'Authors', name: 'author' },
{ placeholder: 'Publisher', name: 'publisher', optional: true },
{ placeholder: 'Edition', name: 'edition', optional: true }
]
console.log(schema.reduce((acc, {name}) => (acc[name] = 1, acc), {}))Run Code Online (Sandbox Code Playgroud)