鍍金池/ 問答/人工智能  數(shù)據(jù)庫  HTML/ 怎么把這幾個數(shù)組合成一個?

怎么把這幾個數(shù)組合成一個?

clipboard.png

有很多個dev ,dev1,dev2,dev3...
其中dev中對應(yīng)的timestamp是一樣的,例如dev1[0].timestamp=dev2[0].timestamp
想把dev中的state累加求平均值,dev1[0].state[0]+dev2[0].state[0]+dev3[0].state[0]....
得到

dev:[{timestamp:xxxx,state:[平均值1,平均值2,平均值3,平均值4,平均值5]
    {timestamp:xxxx,state:[平均值1,平均值2,平均值3,平均值4,平均值5]},
    {timestamp:xxxx,state:[平均值1,平均值2,平均值3,平均值4,平均值5]}
    ......
}]

求指導(dǎo)!?。?
補充一下,dev的數(shù)量不確定,state里面的數(shù)量也不確定
回答
編輯回答
巫婆

concat() 方法用于連接兩個或多個數(shù)組。

用法

arrayObject.concat(arrayX,arrayX,......,arrayX)

arrayX 必需。該參數(shù)可以是具體的值,也可以是數(shù)組對象。可以是任意多個。

返回值

返回一個新的數(shù)組。該數(shù)組是通過把所有 arrayX 參數(shù)添加到 arrayObject 中生成的。如果要進行 concat() 操作的參數(shù)是數(shù)組,那么添加的是數(shù)組中的元素,而不是數(shù)組。

JavaScript concat() 方法

2018年7月18日 12:24
編輯回答
離魂曲
let merge = data => {
    let result = [];
    let keys = Object.keys(data);
    for (let i = 0; i < data[keys[0]].length || 0; i++) {
        let state = [];
        for (let j = 0; j < data[keys[0]][0].state.length; j++) {
            state[j] = 0;
            for (let key of keys) { 
                state[j] += data[key][i].state[j];
            }
            state[j] /= keys.length;
        }
        result.push({
            timestamp: data[keys[0]][i].timestamp,
            state
        });
    }
    return result;
}
2017年4月25日 18:43