相关疑难解决方法(0)

在underscore.js中展平嵌套数组/对象

我有一个对象数组,如下所示(虽然下面的例子只有一个元素在数组中)

[
    {
        "uptime":0,
        "load":{"x":0.11,"y":0.22,"z":0.33},
        "cpu":[
            {"u":111,"n":112,"s":113,"i":114,"q":115}, 
            {"u":211,"n":212,"s":213,"i":214,"q":215}
        ]
    }
]
Run Code Online (Sandbox Code Playgroud)

我试图使用underscore.js来展平每个元素,所以整个数组看起来像这样:

[
    {
        "uptime":0,

        "load_x": 0.11
        "load_y": 0.03
        "load_z": 0.01,

        "cpu1_u": 111,
        "cpu1_n": 112,
        "cpu1_s": 113,
        "cpu1_i": 114,
        "cpu1_q": 115,

        "cpu2_u": 211,
        "cpu2_n": 212,
        "cpu2_s": 213,
        "cpu2_i": 214,
        "cpu2_q": 215,
    }
]
Run Code Online (Sandbox Code Playgroud)

我已经对'load'元素进行了排序(虽然不是一般),因为那只是一个已知的3字段对象.

尽管如此,扁平化cpu阵列也使我望而却步.我的代码如下,以及我的代码生成的输出

我知道我可以写一个js循环并完成它,但我已经看到了一些非常优雅的下划线解决方案,我确信它可能.有什么建议吗?

我的守则

var profiles = [
    {
        "uptime":0,
        "load":{"x":0.11,"y":0.22,"z":0.33},
        "cpu":[
            {"u":111,"n":112,"s":113,"i":114,"q":115}, 
            {"u":211,"n":212,"s":213,"i":214,"q":215}
        ]
    }
];

var flat = _.map(profiles, function(profile) {
        var p = _.extend(_.omit(profile, 'load'), {
            load_1: Math.round(100*profile.load.x)/100, 
            load_5: Math.round(100*profile.load.y)/100, 
            load_15: Math.round(100*profile.load.z)/100
        });

        var …
Run Code Online (Sandbox Code Playgroud)

javascript node.js underscore.js

5
推荐指数
1
解决办法
7158
查看次数

标签 统计

javascript ×1

node.js ×1

underscore.js ×1