我有两个对象数组:
const osCapabilities = [{
os: 'Windows',
os_version: '10',
}, {
os: 'OS X',
os_version: 'Mojave',
}];
const browserCapabilities = [{
browser: 'chrome'
}, {
browser: 'firefox'
}, {
browser: 'internet explorer'
}, {
browser: 'safari'
}];
我正在尝试找出组合它们的最佳方法,以便获得以下内容。
const capabilities = [{
browser: 'chrome',
os: 'Windows',
os_version: '10',
}, {
browser: 'chrome',
os: 'OS X',
os_version: 'Mojave',
}, {
browser: 'firefox',
os: 'Windows',
os_version: '10',
}, {
browser: 'firefox',
os: 'OS X',
os_version: 'Mojave',
} ...
]
我无法解决这个问题。任何帮助是极大的赞赏。谢谢!v
答案 0 :(得分:1)
您可以使用<#span class="icon icon-edit"><#/span>
和Array.prototype.flatMap()
Array.prototype.map
首先,您要映射var merged = browserCapabilities.flatMap(browser => {
return osCapabilities.map(os => {
return {...browser, ...os}
})
})
。在map函数中,您还可以映射browserCapabilities
并返回每个浏览器具有os信息的对象数组。
您可以通过将浏览器对象和os对象分散到新对象中来组合它们。参见spread syntax
然后,如果仅使用osCapabilities
,则flatMap将展平二维数组,并将其展平为一维数组。