' P '

whatever I will forget

JavaScript 連想配列とfor of

概要

連想配列にある値を使って何か計算(変更)し、新しい値としてキーに追加したい場合のやり方。

やり方

まずは、定義した連想配列から取得した値(value)がundefinedの場合、初期化しておく。
その後、条件に当てはまる値があればをmapからgetとした値(value)のa,bの項目に値を入れ、最終的にそれらの値をsetする。

        const DataMap = new Map();
        let value = DataMap.get(keyData);
        if(!value) {
            value = {
                a: 0,
                b: 0,
                abRate: null
            };
        }
        if(//something) {
            value.a = xxx;
        }
        if(//something) {
            value.b = yyy;
        }
        DataMap.set(keyData, value);
    }

全てのデータ(value.a,value.bが入ったとみなせる箇所にて、
計算を行い、value.abRateに値を代入する。
for ofを使うには、連想配列[key, data]をtemp変数とし、of 連想配列とすることで、連想配列の中身をループすることが可能

    for(let [key,data] of DataMap) {
        data.abRate = data.a / data.b;
    }