简体   繁体   English

从JavaScript中的数组到复杂的字符串格式

[英]From array to complex string format in JavaScript

I currently have a function which returns this array: 我目前有一个返回此数组的函数:

var myArray = [
    { Sepal_Width: { Average_Sepal_Width: series => series.average() } },
    { Sepal_Width: { Sum_Sepal_Width: series => series.sum() } },
    { Petal_Length: { Average_Petal_Length: series => series.average() } }
]

But I need the output to look like this: 但我需要输出看起来像这样:

Sepal_Width: { 
     Average_Sepal_Width: series => series.average(),
     Sum_Sepal_Width: series => series.sum() 
},
Petal_Length: { 
     Average_Petal_Length: series => series.average() 
}

I'm just wondering if this is even possible, as I need to account for the user adding additional lines to the original array like { Petal_Length: Sum_Petal_Length: series => series.sum() }} and have this automatically go within the Petal_Length: {}. 我只是想知道这是否可能,因为我需要考虑用户在原始数组中添加额外的行,如{ Petal_Length: Sum_Petal_Length: series => series.sum() }}并自动进入Petal_Length :{}。

Sepal_Width: { 
     Average_Sepal_Width: series => series.average(),
     Sum_Sepal_Width: series => series.sum() 
},
Petal_Length: { 
     Average_Petal_Length: series => series.average() },
     Sum_Petal_Length: series => series.sum() }
}

You could get the first key and assign the values to the given key at the result object. 您可以获取第一个键并将值分配给结果对象的给定键。

 var array = [{ Sepal_Width: { Average_Sepal_Width: series => series.average() } }, { Sepal_Width: { Sum_Sepal_Width: series => series.sum() } }, { Petal_Length: { Average_Petal_Length: series => series.average() } }], result = array.reduce((r, o) => { Object.entries(o).forEach(([k, v]) => Object.assign(r[k] = r[k] || {}, v)); return r; }, {}); console.log(result); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM