作業メモ
JavascriptのString#split
- console.log("".split(","));
- undefinedかと思いきや,要素""のみの配列
- console.log("a".split(","));
- "a"のみ
- console.log("a,b,c".split(","));
- "a", "b", "c"の3個
- "a,b,".split(",")
- 試していない."a", "b", ""の3個だと思う
スキルシミュレータを作っている.「前提スキル」のレベルが最大値より小さくなった場合に,「派生スキル」のレベルを0にしたかった.派生スキルのレベルが0より大きくなった場合,前提スキルを最大値にしたかった.隣接するスキルを順次確認するような,再帰的なコードを書くと詰まった.各スキルについて,その前提スキル,派生スキルを全て書き出して打開した.
リセットボタン
button type="reset"では,関係スキルや表示設定までは初期化できなかった.
$("input#reset").click(function() { for (var i in skills) { skills[i].changeLevel(); } });
ページロード時の初期化処理にもこれを使う.アドレスパラメータを解析してのレベル変更も書きたい.
for in
foreachの様に,for( s in akills )などと書いてしまったが,違う.ここで設定する変数は添字になる.
for-in文がこの先生きのこるには
そんな配列やオブジェクトには使えないfor-in文ですが、そんな彼にも使い道があります。
連想配列です。
連想配列は添え字が数字ではなく文字の配列*3でlengthプロパティを持たないため、普通のfor文は使えません。
そういう場合はfor-in文を使います。
var test = {"hoge":"fuga","foo":"bar"}; for (var i in test){ alert(test[i]); }javascriptのfor-in文は、for-each文の代わりじゃない - うろ覚えメモ