我想合并两个对象数组。它们基本上有不同的键,但我想将第二个数组的键与第一个数组的键合并。我如何实现这一目标?
$scope.links = [
{
name: 'JRD',
status: 'active'
},
{
name: 'JRM',
status: 'active'
},
{
name: 'JRH',
status: 'active'
}
];
$scope.colors = [
{
color: 'red',
value: '#f00'
},
{
color: 'green',
value: '#0f0'
},
{
color: 'blue',
value: '#00f'
},
{
color: 'cyan',
value: '#0ff'
},
{
color: 'magenta',
value: '#f0f'
},
{
color: 'yellow',
value: '#ff0'
},
];
我想结合这两个来实现如下所示的合并数组。
[
{
name: 'JRD',
status: 'active',
color: 'red',
value: '#f00'
},
{
name: 'JRM',
status: 'active',
color: 'green',
value: '#0f0'
},
{
name: 'JRH',
status: 'active',
color: 'blue',
value: '#00f'
}
];
我可以使用reduce或forEach来实现相同的目标吗?任何帮助是极大的赞赏。
答案 0 :(得分:3)
您可以使用模运算符$scope.links
%
$scope.colors
进入新数组,以保持在Object.assign
的范围内并使用var merged = $scope.links.map(function(link, index) {
return Object.assign({}, link, $scope.colors[index % $scope.colors.length]);
});
合并对象一旦你得到它们,就像这样:
def colm(p, q, chunk_len=10):
x = np.arange(0,5 * chunk_len)
x = pd.DataFrame({'x':x})
# just random uniform distributions in differnt range
ys = [np.random.uniform(p_, q_, chunk_len) for p_, q_ in zip(p, q)]
y = np.concatenate(ys)
return x, pd.Series(y)
答案 1 :(得分:1)
你能绕过两个阵列吗?
$scope.merged = [];
for(var x = 0; x < $scope.links.length && x < $scope.colors.length; x++){
$scope.merged.push(Object.assign({}, $scope.links[x], $scope.colors[x]));
}