我有两个数组
let arr1 = [1, 2, 3, 4, 5];
let arr2 = [6, 7, 8, 9, 0];
我使用.map
let labels = arr1.map(value => ({'y': value}));
let series = arr2.map(value => ({'x': value}));
使用来自lodash
的_.merge
合并对象
let mergeData = _.merge({}, series2, labels2);
结果与此类似:
{x: 1, y: 25},
{x: 2, y: 38},
{x: 3, y: 24},
{x: 4, y: 60},
{x: 5, y: 22}
现在我要显示的是一个对象数组(在这种情况下,它只显示数组中的一个对象),如下所示:
graphs: [
{
label: 'area 1',
values: [
{x: 1, y: 25},
{x: 2, y: 38},
{x: 3, y: 24},
{x: 4, y: 60},
{x: 5, y: 22}
]
},
]
任何想法?
答案 0 :(得分:1)
我将数组中的对象连接起来:
let mergeData = [].concat(_.merge({}, series2, labels2));
答案 1 :(得分:1)
您可以使用array#map
并创建值对象。
let arr1 = [1, 2, 3, 4, 5],
arr2 = [6, 7, 8, 9, 0],
values = arr1.map((x, i) => ({x,y: arr2[i]})),
output = { graphs: [{ label: 'area 1', values }]};
console.log(output);
答案 2 :(得分:0)
您可以使用_.zip()
将两个数组都转换为成对的数组[[1, 6], [2, 7],...]
,然后映射成对的数组,并使用_.zipObject()
用{{1}创建对象}属性:
['x', 'y']
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [6, 7, 8, 9, 0];
const result = _.map(
_.zip(arr1, arr2), // combine each column to a pair [1, 6], [2, 7], etc...
_.partial(_.zipObject, ['x', 'y']) // create a function that converts each pair to an object
)
console.log(result)