Ciao, вот рабочий пример:
let runArray = ['Welcome', 'Hello'];
let data = [{Node:'Good', Session:'2', Run:'Welcome', Run_Group:'Display', Elapsed_Ms: '1000'},
{Node:'Good', Session:'2', Run:'Welcome', Run_Group:'Display', Elapsed_Ms: '500'},
{Node:'Good', Session:'2', Run:'Hello', Run_Group:'Display', Elapsed_Ms: '1000'}];
let averages = [];
runArray.map(el => {
let filteredArray = data.filter(dat => dat.Run === el);
let avg = filteredArray.reduce((a, b) => a + parseInt(b.Elapsed_Ms), 0)/filteredArray.length;
let appo_obj = {index : el, average: avg};
averages.push(appo_obj);
})
console.log(averages)
Изменить : как предложил @MattJHoughton, a для l oop лучше для производительности.
let runArray = ['Welcome', 'Hello'];
let data = [{Node:'Good', Session:'2', Run:'Welcome', Run_Group:'Display', Elapsed_Ms: '1000'},
{Node:'Good', Session:'2', Run:'Welcome', Run_Group:'Display', Elapsed_Ms: '500'},
{Node:'Good', Session:'2', Run:'Hello', Run_Group:'Display', Elapsed_Ms: '1000'}];
let averages = [];
for(let i=0; i<runArray.length;i++) {
let filteredArray = data.filter(dat => dat.Run === runArray[i]);
let avg = filteredArray.reduce((a, b) => a + parseInt(b.Elapsed_Ms), 0)/filteredArray.length;
let appo_obj = {index : runArray[i], average: avg};
averages.push(appo_obj);
}
console.log(averages)