【发布时间】:2019-08-13 13:48:59
【问题描述】:
我无法找到与我要解决的问题相同的解决方案。如果是重复的,请提供解决方案的链接。
使用 vanilla Javascript,合并具有共同值的对象数组。我有一个 JSON 文件,它将创建以下 javascript 对象(我无法更改原始结构)。请注意,每个对象都有不同的嵌套名称和嵌套值。然而共同的价值是名字[0]
var data = [
{
name: [
'Data 1', // common value
'1 Jan, 2019', // same value therefore not overwrite/merge
'hotfix dec'
],
value: [
'hotfix1.fsfix',
'hotfix1.txt'
]
},
{
name: [
'Data 1', // common value
'1 Jan, 2019' // same value therefore not overwrite/merge
],
value: 'data1.jar'
},
{
name: [
'Data 2',
'1 Feb, 2019'
],
value: 'data2.fsfix'
},
{
name: [
'Data 2',
'1 Feb, 2019'
],
value: 'data2.jar'
},
{
name: [
'Data 3',
'1 Mar, 2018'
],
value: 'data3.fsfix'
}
]
愿望输出将合并具有相同名称[0]的嵌套对象。
var data = [
{
name: [
'Data 1', // common value
'1 Jan, 2019', // same value therefore not overwrite/merge
'hotfix dec'
],
value: [
'data1.fsfix',
'data1.txt',
'data1.jar' // This was added after the merge
]
},
{
name: [
'Data 2',
'1 Feb, 2019'
],
value: [
'data2.fsfix',
'data2.jar' // This was added after the merge
]
},
{
name: [
'Data 3',
'1 Mar, 2018'
],
value: 'data3.fsfix'
}
]
使用这个新的合并结构,我将创建一个函数来循环每个数组集。提前致谢
【问题讨论】:
-
你自己试过了吗?我会用 array.reduce 来做到这一点
-
你能提供你已经做过的代码吗?
-
即使您可以按照 Chris Li 的建议使用 array.reduce 来执行此操作,但通常将数组减少为单个值。对于您的问题,我建议使用 array.map
标签: javascript arrays json object