鍍金池/ 問答/HTML/ 如何簡寫此ES6代碼

如何簡寫此ES6代碼

   var arr =[{id:1,name:'name1'},{id:4,name:'name2'},{id:5,name:'name3'}];
arr.reduce((all,i)=>{
       all[i.id]=i.name;
       return all
   },{}

請問這段代碼可以不寫return實(shí)現(xiàn)同樣效果嗎?

回答
編輯回答
愛是癌

reduce 不寫return沒效果的。

最多就變成 return (all[i.id] = i.name), all

var arr = [{ id: 1, name: 'name1' }, { id: 4, name: 'name2' }, { id: 5, name: 'name3' }]
arr.reduce((all, i) => ((all[i.id] = i.name), all), {})

或者你自己聲明一個(gè)對象,然后給對象添加屬性。就不用return了

2017年11月30日 01:22
編輯回答
遺莣

這個(gè)思路應(yīng)該比較少見

Object.assign(...arr.map(x => ({[x.id]: x.name})))
2018年5月7日 09:56
編輯回答
笨尐豬
var arr =[{id:1,name:'name1'},{id:4,name:'name2'},{id:5,name:'name3'}];

arr.reduce((all,i)=>[all[i.id]=i.name,all][1],{})

換湯不換藥

2017年5月1日 13:56