+ JavaScript の質問用スレッド vol.104 +
946 :
Name_Not_Found:2013/01/22(火) 12:32:30.26 ID:Z6gXqvs7
日付が2013/01/02だとして、
これをdate関数に代入すると、2013/1/2になります。
月日が1桁の場合、前に0を付けたいのですが
0を付けるようにする関数ってあるのでしょうか?
ゼロパディングで検索しましょう
948 :
946:2013/01/22(火) 13:54:02.56 ID:???
>>947 ありがとうございます。解決策が見つかりました
949 :
Name_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節の箇所を与えられた数の個数でループ的に処理するのが良いのでしょうか?
連結して文字列として検索するとかね。
>>949 Javascript固有の話ではないけど、検索する並びが長くなることが想定される場合には
もっと効率的なアルゴリズムがあったはず
BM法とかでぐぐってみるべし
952 :
Name_Not_Found:2013/01/22(火) 17:58:12.19 ID:QIxhWj62
>>950,951
ありがとう
参考にして勉強します
次スレは975超えたらね。
ジグソーパズルみたいに図形をドラッグして特定の箇所に近付けたらぴたってくっつけるプログラム組んでるけどめちゃむずいな
ifを使えばいいというのはわかるんだが…
933-934お願いします
>>955 >HTMLの左上の部分のディスプレイの絶対座標
これが何を指してるのかいまいち分からない
ブラウザの部品のタイトルバーとかツールバーとかタブバーとかHTML表示エリアがあると思いますが
HTML表示エリアの左上の部分(top:0 left:0)のことです
そこが座標0:0なのですが、タイトルバーとかツールバーとかも含めた座標がほしいんです
無理でしょうか?
何を指してるか聞いておいて良かったなw
すいませんやっぱり取り下げます
960 :
Name_Not_Found:2013/01/24(木) 00:13:52.65 ID:uAuo/bSC
961 :
927:2013/01/24(木) 00:25:10.34 ID:???
execメソッドで空文字とundefinedの例はgood partsのP100の話です。
>>961 全部配列になってるじゃないですか。
ちゃんとコードを読んでますか?
>>957 残念ながら
chromeのプロモーションで作られたやつみたいな、window.openで開いた小窓を重ねて
中身を同期させて動かすようなの(をやりたいかどうかは定かではないけど)は
親窓自体をwindow.openで位置を確定して開いた上で
親窓と小窓のタイトルバー等の大きさが同じであると信じて計算するしかない
もしくは主要なOSとブラウザのウィンドウの大きさをあらかじめ測っておいてすりあわせするとか
965 :
964:2013/01/24(木) 03:19:01.94 ID:d0N8ghlH
ごめん
酔っぱらって変なこと書いた気がする
忘れて
>>962 配列にはnullでなく空文字が入っていたので質問しました
>>966 nullを返すのはマッチしなかった時です。
配列の中は別の話。
>>964 あれなんですよ
window.screenLeftとscreenTopで出来たんですよ
でもOperaでの話です
Chromeだとタイトルバーのところから計算されるので困りましたね
このへんをクロスブラウザで書いてくれてる人が世界のどこかにはいるとは思うんですが
githubとかgooglecodeとかそのあたり探しても見つけられませんでした
970 :
Name_Not_Found:2013/01/24(木) 17:58:42.41 ID:qkHKqiN2
そんなに大量にあるわけでもないし
調べる手間で、自分で書けばいいじゃない
長さ測って
それじゃ意味がない
GChromeにタイトルバーは無いし何のためにそんな値が欲しいのか
学問としてです
Chromeは通常タイトルバーが見えませんが隠しているため見えないだけです
CPUに負荷をかけたときにChromeを立ち上げると運がよければタイトルバーは確認できますね
学問のためなら自分の力で追究してみるのも一興かと
976 :
Name_Not_Found:2013/01/24(木) 19:02:19.89 ID:IzH8FWra
IEのモーダルダイアログでmailtoを使いメーラーを起動させたいのですが、
mailtoのリンクをクリックさせるとmailtoがURLのIEが開き、その後にメーラーが起動します。
mailtoがURLのIEを開かない、または開いた後に即閉じるようにすることは可能でしょうか?
それとJavaScriptはどういう関係があるのか
Windows板池よ
次スレの季節
979 :
Name_Not_Found:2013/01/24(木) 22:30:52.80 ID:IzH8FWra
>>977 モーダルダイアログとmailtoでjavascriptを使ってます。
981 :
Name_Not_Found:2013/01/25(金) 14:25:51.06 ID:oy5BAjcg
キーが0,1,2…と数字しかないオブジェクトを配列に変換する事は出来ませんでしょうか
document.body.classListとか。
forEachとかの配列に便利な関数を使いたいと思いまして。
for inでグリッとまわすのではいかんの?
とりあえずlengthプロパティあればforEachは回るな
Array.prototype.forEach.call({0:"a", 1:"b", 2:"c", length:3}, function(x){console.log(x)});
984 :
Name_Not_Found:2013/01/25(金) 15:39:30.62 ID:oy5BAjcg
ありがとうございます。
どうしてもわからないので、質問させてください。
<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];
とかなります。どうすればならないでしょうか?なっても平気ですか?教えてください。
986 :
Name_Not_Found:2013/01/25(金) 17:22:24.06 ID:fT5Lu8JY
987 :
985:2013/01/25(金) 17:27:41.56 ID:???
>>986 教えていただいたように、
forの中のi<=3じゃなくてi<=2でした。
コンソールに先ほどのようにエラーが出なくなりました。
ありがとうございました!
988 :
Name_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++)
と書きます
>>984 Array.slice(document.body.classList).forEach(function(item){
console.log(item);
});
>>988 いいやつすぎ
来世はきっと美少女になって、もてまくるにちがいない
乙
ume!
うめ
ume+