Javascriptの二次元連想配列の要素をforeachで1つずつ取得する流れについて自身の理解を整理。
let NBA =[
{region:'oklahoma', team:'Thunder', player:'KD'},//キー値=[0]
{region:'sanantonio', team:'Spurs', player:'parker'},//キー値=[1]
{region:'washington', team:'Widzards', player:'hachimura'}//キー値=[2]
]
for (let count = 0; count < NBA.length; count++) {
Object.keys(NBA[count]).forEach(function(key) {
console.log(key + '=' + NBA[count][key]);
});
}
変数countを二次元連想配列NBAのindex番号(キー値)として使用する。ループする条件としてcountが二次元連想配列NBAのlength(=3)未満とすることでキー値が[0]~[2]までの各配列を扱える。
Object.keys(NBA[count])によって[0]~[2]までの各配列毎にキー値を取り出してforEachで1つずつ受け取り処理をする。
例.count=0の時
Obkect.keys(NBA[0])となる事から、
配列[0]{region:'oklahoma', team:'Thunder', player:'KD'}のキー値であるregion, team, playerが取り出される。
配列[0]においてregionが取り出された時にはコールバック関数の仮引数にregionが渡される為、console.logで以下のように表示される。
region=oklahoma
上記のようにoklahomaとなるのはcount=0によってNBAから連想配列[0]が取得されており、且つその配列のキー値がregionである要素の値に該当する為。
残りのNBA[1], NBA[2]も同じように一つずつ取得された連想配列からそれぞれのキー値に対応する要素の値が出力される。