从对象数组中创建一个具有唯一键的单独对象,JavaScript



如何制作具有唯一键的单独对象?下面是示例阵列:

var arr = [
{"name": "john"},
{"email": "john@gmail.com"},
{"phone": "2222222"},
{"name": "jack"},
{"email":"jack@gmail.com"},
{"phone":"2222222333"}
]

输出:

[
{
{"name" :"john"},
{"email": "john@gmail.com"},
{"phone": "2222222"}
}, 
{
{"name": "jack"},
{"email": "jack@gmail.com"},
{"phone": "2222222333"}
}
]

我想你在找这个?

const data = 
[ { name  : 'john'           } 
, { email : 'john@gmail.com' } 
, { phone : '2222222'        } 
, { name  : 'jack'           } 
, { email : 'jack@gmail.com' } 
, { phone : '2222222333'     } 
] 
const result = data.reduce((w,row,i) =>
{
let [key,val] = Object.entries(row)[0]

if (!i || w.el.hasOwnProperty(key) ) 
{
w.el = { [key]: val }
w.res.push(w.el) 
} 
else
w.el[key] = val
return w 
}, { res:[], el:null } ).res

console.log( result )
.as-console-wrapper {max-height: 100%!important;top:0 }

最新更新