アプリ開発サークル勉強会⑪ 開催日時 2021年3月13日(土) 7:00-9:00
本日もこちらの問題やりました!
Q46-48 https://gist.github.com/kenmori/1961ce0140dc3307a0e641c8dde6701d
配列の中に連想配列
配列の中に連想配列が定義されているパターン
このようなkey,value形式の値を取り出して配列に戻す。
var names = [{ name1: 'A', name2: 'B' }, { name3: 'C', name4: 'D' }];
まずはforEachで連想配列を取り出す。
names.forEach(function (name) { console.log(name); });
結果:
{ name1: 'A', name2: 'B' } { name3: 'C', name4: 'D' }
次にkeyを連想配列に定義されているすべてのkeyを取り出す
names.forEach(function (name) { Object.keys(name).forEach(function (key) { console.log(key); }); });
結果:
name1 name2 name3 name4
後はこれらのkeyを使って連想配列の中のvalue値を取り出して配列に詰め込む。
var results = []; names.forEach(function (name,) { Object.keys(name).forEach(function (key) { results.push(name[key]); }); }); console.log(results);
結果:
[ 'A', 'B', 'C', 'D' ]
参考サイト
JavaScript|配列とオブジェクト(連想配列)の組み合わせパターン - わくわくBank
some
numbersの中身が一つでも5以上だったらtrueを返す。
someを使わなかった場合と使った場合の比較。
Someなし
変数numbers
var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; var result = function () { for (var number of numbers) { if (number === 5) { return number >= 5; }; } return false; } console.log(result);
結果:
true
Someあり
var result1 = numbers.some(function (number) { return number >= 5; }); console.log(result1);
結果:
true
everyなし
numbersの中身がすべて5以上だったらtrueを返す。
everyを使わなかった場合と使った場合の比較。
everyなし
var result = function () { for (var number of numbers) { if (number >= 5) { return false; } } return true; } console.log(result());
結果:
false
every
var result1 = numbers.every(function (number) { return number >= 5; }); console.log(result1);
結果:
false