+ JavaScript の質問用スレッド vol.104 +

このエントリーをはてなブックマークに追加
946Name_Not_Found:2013/01/22(火) 12:32:30.26 ID:Z6gXqvs7
日付が2013/01/02だとして、
これをdate関数に代入すると、2013/1/2になります。

月日が1桁の場合、前に0を付けたいのですが
0を付けるようにする関数ってあるのでしょうか?
947Name_Not_Found:2013/01/22(火) 12:36:33.07 ID:???
ゼロパディングで検索しましょう
948946:2013/01/22(火) 13:54:02.56 ID:???
>>947
ありがとうございます。解決策が見つかりました
949Name_Not_Found:2013/01/22(火) 16:50:51.13 ID:QIxhWj62
質問です

var a = [3,8,1,7,6, ... ,4,2]; // ランダムに数値が並ぶ

このような配列から「1,7」と並んでいる箇所を探す
ということをしたいのですが、とりあえず

for(var n=0,l=a.length-2 ; n<l ; n++){
  if(a[n] == 1 && a[n+1] == 7){
    // n番目に発見!
  }
}

としています
もっと効率的な方法はありますでしょうか?

また検索する並びの「1,7」を任意の数、個数で一般化(関数化)するには
if節の箇所を与えられた数の個数でループ的に処理するのが良いのでしょうか?
950Name_Not_Found:2013/01/22(火) 16:59:56.20 ID:???
連結して文字列として検索するとかね。
951Name_Not_Found:2013/01/22(火) 17:08:18.08 ID:???
>>949
Javascript固有の話ではないけど、検索する並びが長くなることが想定される場合には
もっと効率的なアルゴリズムがあったはず
BM法とかでぐぐってみるべし
952Name_Not_Found:2013/01/22(火) 17:58:12.19 ID:QIxhWj62
>>950,951
ありがとう
参考にして勉強します
953Name_Not_Found:2013/01/22(火) 23:28:18.84 ID:???
次スレは975超えたらね。
954Name_Not_Found:2013/01/23(水) 18:25:10.53 ID:???
ジグソーパズルみたいに図形をドラッグして特定の箇所に近付けたらぴたってくっつけるプログラム組んでるけどめちゃむずいな
ifを使えばいいというのはわかるんだが…
955Name_Not_Found:2013/01/23(水) 18:37:16.37 ID:???
933-934お願いします
956Name_Not_Found:2013/01/23(水) 18:41:44.62 ID:???
>>955
>HTMLの左上の部分のディスプレイの絶対座標
これが何を指してるのかいまいち分からない
957Name_Not_Found:2013/01/23(水) 18:44:48.90 ID:???
ブラウザの部品のタイトルバーとかツールバーとかタブバーとかHTML表示エリアがあると思いますが
HTML表示エリアの左上の部分(top:0 left:0)のことです
そこが座標0:0なのですが、タイトルバーとかツールバーとかも含めた座標がほしいんです
無理でしょうか?
958Name_Not_Found:2013/01/23(水) 18:48:09.10 ID:???
何を指してるか聞いておいて良かったなw
959Name_Not_Found:2013/01/23(水) 18:53:25.28 ID:???
すいませんやっぱり取り下げます
960Name_Not_Found:2013/01/24(木) 00:13:52.65 ID:uAuo/bSC
ttp://dotinstall.com/lessons/numbers_js
このプログラムをボタンで開始、リセットするにはどうしたらいいでしょうか。
ボタン追加してからのやり方がわかりません。」
961927:2013/01/24(木) 00:25:10.34 ID:???
execメソッドで空文字とundefinedの例はgood partsのP100の話です。
962Name_Not_Found:2013/01/24(木) 01:21:20.65 ID:???
>>961
全部配列になってるじゃないですか。
ちゃんとコードを読んでますか?
963Name_Not_Found:2013/01/24(木) 01:48:43.78 ID:???
>>960
頑張って勉強しようよ・・
964Name_Not_Found:2013/01/24(木) 03:15:55.70 ID:???
>>957
残念ながら

chromeのプロモーションで作られたやつみたいな、window.openで開いた小窓を重ねて
中身を同期させて動かすようなの(をやりたいかどうかは定かではないけど)は

親窓自体をwindow.openで位置を確定して開いた上で
親窓と小窓のタイトルバー等の大きさが同じであると信じて計算するしかない

もしくは主要なOSとブラウザのウィンドウの大きさをあらかじめ測っておいてすりあわせするとか
965964:2013/01/24(木) 03:19:01.94 ID:d0N8ghlH
ごめん
酔っぱらって変なこと書いた気がする
忘れて
966Name_Not_Found:2013/01/24(木) 11:04:44.92 ID:???
>>962
配列にはnullでなく空文字が入っていたので質問しました
967Name_Not_Found:2013/01/24(木) 12:30:40.53 ID:???
>>966
nullを返すのはマッチしなかった時です。
配列の中は別の話。
968Name_Not_Found:2013/01/24(木) 17:27:14.78 ID:???
>>964
あれなんですよ
window.screenLeftとscreenTopで出来たんですよ
でもOperaでの話です
Chromeだとタイトルバーのところから計算されるので困りましたね
969Name_Not_Found:2013/01/24(木) 17:28:23.80 ID:???
このへんをクロスブラウザで書いてくれてる人が世界のどこかにはいるとは思うんですが
githubとかgooglecodeとかそのあたり探しても見つけられませんでした
970Name_Not_Found:2013/01/24(木) 17:58:42.41 ID:qkHKqiN2
そんなに大量にあるわけでもないし
調べる手間で、自分で書けばいいじゃない
長さ測って
971Name_Not_Found:2013/01/24(木) 18:06:15.02 ID:???
それじゃ意味がない
972Name_Not_Found:2013/01/24(木) 18:09:05.05 ID:???
GChromeにタイトルバーは無いし何のためにそんな値が欲しいのか
973Name_Not_Found:2013/01/24(木) 18:12:13.68 ID:???
学問としてです
974Name_Not_Found:2013/01/24(木) 18:13:36.04 ID:???
Chromeは通常タイトルバーが見えませんが隠しているため見えないだけです
CPUに負荷をかけたときにChromeを立ち上げると運がよければタイトルバーは確認できますね
975Name_Not_Found:2013/01/24(木) 18:32:36.72 ID:???
学問のためなら自分の力で追究してみるのも一興かと
976Name_Not_Found:2013/01/24(木) 19:02:19.89 ID:IzH8FWra
IEのモーダルダイアログでmailtoを使いメーラーを起動させたいのですが、
mailtoのリンクをクリックさせるとmailtoがURLのIEが開き、その後にメーラーが起動します。
mailtoがURLのIEを開かない、または開いた後に即閉じるようにすることは可能でしょうか?
977Name_Not_Found:2013/01/24(木) 20:53:02.25 ID:???
それとJavaScriptはどういう関係があるのか
Windows板池よ
978Name_Not_Found:2013/01/24(木) 21:37:38.79 ID:???
次スレの季節
979Name_Not_Found:2013/01/24(木) 22:30:52.80 ID:IzH8FWra
>>977
モーダルダイアログとmailtoでjavascriptを使ってます。
980Name_Not_Found:2013/01/25(金) 12:58:39.72 ID:???
981Name_Not_Found:2013/01/25(金) 14:25:51.06 ID:oy5BAjcg
キーが0,1,2…と数字しかないオブジェクトを配列に変換する事は出来ませんでしょうか
document.body.classListとか。

forEachとかの配列に便利な関数を使いたいと思いまして。
982Name_Not_Found:2013/01/25(金) 14:46:46.01 ID:???
for inでグリッとまわすのではいかんの?
983Name_Not_Found:2013/01/25(金) 14:51:26.00 ID:???
とりあえずlengthプロパティあればforEachは回るな
Array.prototype.forEach.call({0:"a", 1:"b", 2:"c", length:3}, function(x){console.log(x)});
984Name_Not_Found:2013/01/25(金) 15:39:30.62 ID:oy5BAjcg
ありがとうございます。
985Name_Not_Found:2013/01/25(金) 17:19:44.06 ID:???
どうしてもわからないので、質問させてください。
<script>
window.onload = function(){
var color = ["blue","red","yellow"];
for(i=0;i<=3;i++)
document.getElementById("div"+i).style.background = color[i];
}
</script>
<body>
<div id="div0" style="position:absolute; top:50%; left:50%; margin-left:-200px; background:black; width:100px; height:1px;"></div>
<div id="div1" style="position:absolute; top:50%; left:50%; margin-left:-100px; background:black; width:100px; height:1px;"></div>
<div id="div2" style="position:absolute; top:50%; left:50%; background:black; width:100px; height:1px;"></div>
</body>
ブラウザはfirefox18です。ちゃんとdivにcolorがつくことができるのですが、
コンソールが
TypeError: document.getElementById(...) is null
document.getElementById("div"+i).style.background = color[i];
とかなります。どうすればならないでしょうか?なっても平気ですか?教えてください。
986Name_Not_Found:2013/01/25(金) 17:22:24.06 ID:fT5Lu8JY
>>985
color[3]は未定義ですがな
987985:2013/01/25(金) 17:27:41.56 ID:???
>>986
教えていただいたように、
forの中のi<=3じゃなくてi<=2でした。
コンソールに先ほどのようにエラーが出なくなりました。
ありがとうございました!
988Name_Not_Found:2013/01/25(金) 17:45:02.22 ID:fT5Lu8JY
>>987
多くの人はi<3って書きますよ
というか3とは書かないで

var len = color.length;
for(var i=0 ; i<len ; i++)

または

for(var i=0,len=color.length ; i<len ; i++)

と書きます
989Name_Not_Found:2013/01/25(金) 18:25:51.60 ID:???
990Name_Not_Found:2013/01/25(金) 19:00:36.23 ID:???
>>984
Array.slice(document.body.classList).forEach(function(item){
console.log(item);
});
991Name_Not_Found:2013/01/26(土) 00:41:01.94 ID:???
>>988
いいやつすぎ
来世はきっと美少女になって、もてまくるにちがいない
992Name_Not_Found:2013/01/26(土) 20:15:33.94 ID:???
993Name_Not_Found:2013/01/27(日) 08:33:03.93 ID:???
ume!
994Name_Not_Found:2013/01/27(日) 15:46:07.72 ID:???
うめ
995Name_Not_Found
ume+