第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

基于索引的組和平均數(shù)組值

基于索引的組和平均數(shù)組值

我有一個(gè)包含字符串和整數(shù)的二維數(shù)組。在GAS中,我想創(chuàng)建一個(gè)新數(shù)組,該數(shù)組平均具有公共字符串的數(shù)組的整數(shù)。我已經(jīng)找到了解決方案,但我發(fā)現(xiàn)的大部分內(nèi)容都是在ES6上,GAS不支持,其余的我無(wú)法適應(yīng)我的情況。我試圖使用map,reduce和filter但我找不到合適的解決方案。下面是數(shù)組和所需輸出的示例。function myfunction(){var array = [["House1", 1.0, 2.0, 5.0, 1.0], ["House1", 1.0, 4.0, 2.0, 3.0], ["House2", 2.0, 3.0, 3.0, 4.0], ["House2", 5.0, 4.0, 3.0, 4.0],["House2", 4.0, 5.0, 2.0, 2.0], ["House3", 2.0, 1.0, 4.0, 5.0]]}//Desired outputvar newArray = [["House1", 1.0, 3.0, 3.5, 2.0],["House2", 3.6, 4.0, 2.6, 3.3],["House3", 2.0, 1.0, 4.0, 5.0]]
查看完整描述

4 回答

?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊

let array = [

  ["House1", 1.0, 2.0, 5.0, 1.0],

  ["House1", 1.0, 4.0, 2.0, 3.0],

  ["House2", 2.0, 3.0, 3.0, 4.0],

  ["House2", 5.0, 4.0, 3.0, 4.0],

  ["House2", 4.0, 5.0, 2.0, 2.0],

  ["House3", 2.0, 1.0, 4.0, 5.0]];


let averageArrays = arrays =>

    arrays.reduce((sum, a) => {

      a.forEach((v, i) => sum[i] = (sum[i] || 0) + v / arrays.length);

      return sum;

    }, []);


let grouped = array.reduce((acc, a) => {

  acc[a[0]] = acc[a[0]] || [];

  acc[a[0]].push(a.slice(1));

  return acc;

}, {});


let averages = Object.entries(grouped).map(([name, arrays]) => [name, ...averageArrays(arrays)]);


console.log(averages);


查看完整回答
反對(duì) 回復(fù) 2019-05-17
?
MMTTMM

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊

以下代碼在GAS環(huán)境中進(jìn)行了測(cè)試。


function myFunction() {

  var array = [

    ["House1", 1.0, 2.0, 5.0, 1.0], 

    ["House1", 1.0, 4.0, 2.0, 3.0], 

    ["House2", 2.0, 3.0, 3.0, 4.0], 

    ["House2", 5.0, 4.0, 3.0, 4.0],

    ["House2", 4.0, 5.0, 2.0, 2.0], 

    ["House3", 2.0, 1.0, 4.0, 5.0]

  ];


  var avg = {}, count = {};

  array.forEach(function(a) {

    var key = a.shift();

    if (avg[key]) {

      for (var i = 0; i < 4; i++) { 

        avg[key][i] += a[i];

      }

      count[key]++;

    } else {

      avg[key] = a;

      count[key] = 1;

    }

  });


  var result = [];

  for (var key in avg) {

    for (var i = 0; i < 4; i++) { 

      avg[key][i] /= count[key];

    }

    avg[key].unshift(key);

    result.push(avg[key]);

  }


  Logger.log(result);

}

可能是,它很長(zhǎng),但每一步都很清楚。我們?cè)赼vg和count對(duì)象中累積中間結(jié)果,根據(jù)需要將其轉(zhuǎn)換為結(jié)果數(shù)組。


查看完整回答
反對(duì) 回復(fù) 2019-05-17
  • 4 回答
  • 0 關(guān)注
  • 417 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)