スキップしてメイン コンテンツに移動

投稿

6月, 2017の投稿を表示しています

javascriptで配列とオブジェクトの定義、代入、要素数の取得について

javascriptでは、 配列、オブジェクトをそれぞれ、下記のように定義する。 ・配列  var arrayName = []; ・オブジェクト  var objName = {}; 値の代入は、 ・配列  >方法①インデックス指定で代入   arrayName[0]='a';   arrayName[2]='b';   arrayName[3]='c';  >方法②配列の末尾に追加   arrayName.push('a');   arrayName.push('b');   arrayName.push('c'); ※①と②は、ケースを分けて使ったほうがいいでしょう! インデックスで何かをしたい場合、①で、そうでなければ、②を 使う。 ・オブジェクト  >方法①インデックス指定で代入   objName['one'] = 'a';   objName['two'] = 'b';   objName['three'] = 'c';  >方法②objName.one = '1';   objName.one = 'a';   objName.two = 'b';   objName.three = 'c';    ※①と②は、どっちでもいいけど、個人的には、②を使っている。 要素数の取得は、 ・配列  >方法①lengthプロパティで取得   arrayName.length  >方法②配列オブジェクトのkey関数で取得   Object.keys(arrayName).length    ※配列、オブジェクトを区別するために、配列は、方法①を使う。 ・オブジェクト  >方法が唯一つ  Object.keys(objName).length     以上。

jqueryでラジオボックス、チェックボックスの制御について

よく使うけど、よく忘れるから、今回は、まとめてみた。 ■ラジオボックスについて ソースコード例) ---- <p class="radio-area">     <input type="radio" name="lang" value="php" id="php">PHP     <input type="radio" name="lang" value="java" id="java">Java </p> ---- まず、ラジオボックスについては、 >ラジオボックスの選択 上記ソースコードで、PHPを選択状態にするとき、下記三つの方法がある。 ①$('input[name=lang]:checked').val(['php']); ②$('input[name=lang]:eq(0)').prop('checked', true); ③$('#php').attr('checked', 'checked'); ③がたまに、効かないと、よく、他のブログに見かける情報だけど、実際は、 上記の「①、②」と「③」を分けて使わないといけないらしい。 というのは、 ・「①、②」は、上記のソースコードがすでにレンダリングし、描画された場合に、 使うこと。 ・「③」は、上記のソースコードを動的に生成する際に、使うこと。 ※「①、②」を使っても、効かない。 >ラジオボックスの状態取得 上記ソースコードで、phpが選択されている状態だとして、下記の方法で取得できる。 ①$('input[name=lang]:checked').val() === 'php'; ②$('input[name=lang]:eq(0)').prop('checked'); ③$('input[name=lang]:eq(0...

javascriptで配列の要素を削除するには、deleteを使っていい?

結論から、言うと、やめたほうがいい。 下記の例で見てみよう。 例) var arrayNum = []; console.log(arrayNum) ⇒この時点は、配列が空になっている。 つまり、[]。 arrayNum.push('a'); console.log(arrayNum); ⇒この時点は、['a']。 delete arrayNum[0]; console.log(arrayNum); ⇒この時点だと、[undefined × 1]、 なんと、undefinedの要素が入ってしまった。 spliceでやってみよ。 arrayNum.push('a'); arrayNum.splice(0, 1); console.log(arrayNum); ⇒ちゃんと、期待した結果になった。 []。 やはり、配列の要素を削除するには、spliceを使おう。

javascriptでオブジェクトが空かどうかをどう調べばいい?

javascriptでは、配列が空かどうかを調べるには、 array.length === 0で判断すればいいですが、 objectは、どうすればいい? 例) var hoge = {     fuga: 1,     moga: 2, }; console.log(Object.keys(hoge).length === 0); 結果が、trueなら、空と判断できるわけ。 以上。

jQuery.extend()で、オブジェクトをマージしてみる。

今まで、知らなかったけど、これを機に使い方をまとめてみた。 ■文法 $.extend( [deep], target, object1 [, objectN] ) [deep] trueを指定すると、再帰的に階層の深いプロパティもマージします。 target プロパティをマージする基底となるオブジェクトを指定します。 [object1] マージするためのプロパティを持つオブジェクトを指定します。 [objectN] マージするためのプロパティを持つオブジェクトを指定します。 実例1) var p1 = { id: 1, name: 'TARO' }; var p2 = { name: 'JIRO', age: '18' } $extend(a, b); 結果: { id:1, name: 'JIRO', age: '18' } $.extend(p1, p1) とすることで、p1 に p2 をマージします。 同じプロパティがあれば b の値で上書きされますし、新しいプロパティがあれば追加してくれます。 実例2) また、extend() にはいくつでもオブジェクトを指定可能です。 var p1 = { id: 1, name: 'TARO' }; var p2 = { name: 'JIRO', age: '18' } var p3 = { name: 'SANRO', sex: 'man' } $extend(p1, p2, p3); 結果: { id:1, name: 'SANRO', age: '18', sex: 'man' } 結構、便利な関数だね。 今後、もっと使ってみよ。

jQuery.each()ループから抜けるには?

jQuery.each()ループから抜けるには? jQuery、javaScriptのループから抜けるには、 breakがよく、使われるが、どうやらjQueryのeach()ループから抜けるには、 returnでやらないといけない。 jQueryの仕様では、下記のように書いてある。 「  We can break the $.each() loop at a particular iteration by making the callback function return false.  Returning non-false is the same as a continue statement in a for loop;  it will skip immediately to the next iteration. 」 なので、returnを使いましょう!

javascriptで時間を表示してみる

javascriptで時間を取得する際に、いろいろめんどなので、下記にまとめてみた。 ■現在の時間 -------- // 現在の時間 var jikan = new Date(); // 時・分・秒を取得する var hour = ('00' + jikan.getHours()).slice(-2); var minute = ('00' + jikan.getMinutes()).slice(-2); var second = ('00' + jikan.getSeconds()).slice(-2); // 現在の日時 var nowTime = hour + '' + minute + '' + second; ■30秒後の時間 -------- // 30秒後の時間 jikan.setSeconds(jikan.getSeconds() + 30); // 時・分・秒を取得する var hour = ('00' + jikan.getHours()).slice(-2); var minute = ('00' + jikan.getMinutes()).slice(-2); var second = ('00' + jikan.getSeconds()).slice(-2); // 現在の日時 var nowTime = hour + '' + minute + '' + second;