【发布时间】:2022-02-17 23:42:25
【问题描述】:
我有一个这样写的数组:
[
{ TestMetaCoin: 'L', 'Contract: MetaCoin': 'K' },
{ TestMetaCoin: 'L', 'Contract: MetaCoin': 'L' },
{ TestMetaCoin: 'L', 'Contract: MetaCoin': 'K' },
{ TestMetaCoin: 'L', 'Contract: MetaCoin': 'L' }
]
我想得到一个这样写的数组:
[
{ L: 'TestMetaCoin', K: 'Contract: MetaCoin' },
{ L: ['TestMetaCoin','Contract: MetaCoin'] },
{ L: 'TestMetaCoin', K: 'Contract: MetaCoin' },
{ L: ['TestMetaCoin','Contract: MetaCoin'] }
]
我尝试使用nodejs函数restore()但结果是:
[
{ L: 'TestMetaCoin', K: 'Contract: MetaCoin' },
{ L: 'Contract: MetaCoin' },
{ L: 'TestMetaCoin', K: 'Contract: MetaCoin' },
{ L: 'Contract: MetaCoin' }
]
它完全覆盖了位置 2 和 4 的值,可能是因为它试图创建一个现有的键,因此无法创建它,它通过覆盖存在的值而不是创建具有 2 个值的数组来访问旧的键。 我怎样才能解决这个问题? 这是我使用的代码:
var fristArray= [
{ TestMetaCoin: 'L', 'Contract: MetaCoin': 'K' },
{ TestMetaCoin: 'L', 'Contract: MetaCoin': 'L' },
{ TestMetaCoin: 'L', 'Contract: MetaCoin': 'K' },
{ TestMetaCoin: 'L', 'Contract: MetaCoin': 'L' }
]
var swapped=[]
for(var i=0;i<fristArray.length;i++) {
swapped.push(Object.fromEntries(Object.entries(fristArray[i]).map(([k, v]) => [v, k])))
}
console.log(swapped)
【问题讨论】:
标签: javascript node.js arrays revert