[英]How to create key value pair from an array?
I have an array object with following data:我有一个包含以下数据的数组 object:
const arr = [
{
key: 'mykey1597855209',
integrity: 'sha512-T9JWj=='
},
{
key: 'mykey159785520915978552101597855212',
integrity: 'sha512-T9JWj=='
},
{
key: 'mykey15978552091597855210',
integrity: 'sha512-lcddfd=='
},
{
key: 'otherkey15978552091597855210',
integrity: 'sha512-abcdfd=='
}];
I want to create key
value
pair from the the arr[]
object such that integrity
becomes key and the key
becomes value我想从
arr[]
object 创建key
value
,这样integrity
就变成了键, key
就变成了值
Desired Output is something like below:
所需的 Output 如下所示:
{
"sha512-T9JWj==": [
"mykey1597855209",
"mykey159785520915978552101597855212"
],
"sha512-lcddfd==": [
"mykey15978552091597855210"
],
"sha512-abcdfd==": [
"otherkey15978552091597855210"
]
}
I have written following code:我写了以下代码:
const arr = [{ key: 'mykey1597855209', integrity: 'sha512-T9JWj==' }, { key: 'mykey159785520915978552101597855212', integrity: 'sha512-T9JWj==' }, { key: 'mykey15978552091597855210', integrity: 'sha512-lcddfd==' }, { key: 'otherkey15978552091597855210', integrity: 'sha512-abcdfd==' } ]; const result = Object.assign(...arr.map(a => ({ [a.integrity]: a.key }))); console.log(result)
You can transform it like this:您可以像这样转换它:
let map = {};
arr.forEach({ key, integrity } => map[integrity] = key);
You can use Object.fromEntries
:您可以使用
Object.fromEntries
:
const arr = [{key: 'mykey1597855209',integrity: 'sha512-T9JWj=='},{key: 'mykey159785520915978552101597855212',integrity: 'sha512-T9JWj=='},{key: 'mykey15978552091597855210',integrity: 'sha512-lcddfd=='},{key: 'otherkey15978552091597855210',integrity: 'sha512-abcdfd=='}]; let map = Object.fromEntries(arr.map(({_, integrity }) => [integrity, []])); arr.forEach(({key, integrity}) => map[integrity].push(key)); console.log(map);
Or reduce
:或
reduce
:
const arr = [{key: 'mykey1597855209',integrity: 'sha512-T9JWj=='},{key: 'mykey159785520915978552101597855212',integrity: 'sha512-T9JWj=='},{key: 'mykey15978552091597855210',integrity: 'sha512-lcddfd=='},{key: 'otherkey15978552091597855210',integrity: 'sha512-abcdfd=='}]; let map = arr.reduce((acc, { key, integrity }) => { acc[integrity] = acc[integrity] || []; acc[integrity].push(key); return acc; }, {}); console.log(map);
arr.reduce((acc, curr) => {
acc[curr.integrity] = (acc[curr.integrity]) ?
[ ...acc[curr.integrity], curr.key ] :
[ curr.key ]
return acc;
}, {})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.