みこむらめもむらむらむら

なんかHTML5とかJS勉強とかやりながらめもを綴るブログ

【JavaScript】例題やってみる【配列、制御命令などなど】

JavaScriptの勉強をしておりますが
なんていうかなんていうか知識があっちこっちに散らばっていて
なんていうかなんていうか算数でいうなれば公式はわかってるけど
文章問題解いたことないみたいな感じで
ものすごく不安なのであります、ちーん

できるようになるんだろうかーわかるようになるんだろうかー

とかなんとかぼやいていたら先生から例題きた!

var items = [
 {
  "code": "pink_shirt",
  "name": "ピンク色のシャツ",
  "description": "ピンク色のシャツの説明",
  "price": 2000,
  "category": "tops"
 },
 {
  "code": "red_shirt",
  "name": "赤いキャミソール",
  "description": "赤いキャミソールの説明",
  "price": 1000,
  "category": "tops"
 },
 {
  "code": "green_keyholder",
  "name": "グリーンのキーホルダー",
  "description": "グリーンのキーホルダーの説明",
  "price": 1500,
  "category": "accessory"
 },
 {
  "code": "pink_bottoms",
  "name": "ピンクのスカート",
  "description": "ピンクのスカートの説明",
  "price": 3000,
  "category": "bottoms"
 },
 {
  "code": "green_bottoms",
  "name": "みどりのパンツ",
  "description": "みどりのパンツの説明",
  "price": 2500,
  "category": "bottoms"
 }
];

categoryがbottomsのもののcodeの配列を作成を作成せよ





(・∀・;)

よ、よっしやってみるぞ!(`・ω・´;)

30分後‥

var ary = [];
var j = 0;
for(var i = 0; i<items.length; i++){
  if (items[i].category == 'bottoms'){
    ary[j] = items[i].code;
    j++;
  }
};

こ、こうか‥!?(`・ω・´;)


先生に見せたらこうするともっとスマートだよ、と

var ary = [];
for(var i = 0; i<items.length; i++){
  if (items[i].category == 'bottoms'){
    ary[ary.length] = items[i].code;
  }
}

Σ(´□`ノ)ノな、なるほど‥!!


配列aryは中身がないからfor命令に入ってきたとき
「ary.length」は「0」なのか!

要は

ary[0] = items[i].code;

ってことだ!

でもってこの処理が済むと
「ary.length」は「1」になる、おおお
なるほどです!

よくあるやり方だそうです、勉強になります



とか何とか云っていたら先生が一言

じゃあ次はこれをpushメソッド使った形に書き換えてみようか


しれっと課題が増えた‥!(`・ω・´;)

var ary = [];
for(var i = 0; i<items.length; i++){
  if (items[i].category == 'bottoms'){
    ary.push(items[i].code);
  }
}

なるほどこんな風にも書き換えられるのか

配列の最後に追加していくのよねpushメソッド
空の配列追加処理をやるわけですねなるほどー







なんとか書けたのでちょっと自信がつきましたありがとう先生‥
勉強‥むだにならないといいなあ‥(´;ω;`)