のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,646,354人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

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

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
401 : Name_Not - 2014/11/29(土) 15:21:08.94 ID:???.net (+4,-30,-54)
for (var i=0; i<str.length; i++) {
if (str[i] === "a') {
str[i] = '0';
} else {
break;
}
}
402 : Name_Not - 2014/11/29(土) 15:52:28.88 ID:???.net (+87,-25,-20)
>>401
ES5仕様だな
後方互換性は切り捨てか
403 : Name_Not - 2014/11/29(土) 16:09:46.38 ID:???.net (-24,-29,-24)
ES5だろうが6だろうがプリミティブのプロパティに値をセットするなんてできないが
404 : Name_Not - 2014/11/29(土) 16:16:41.43 ID:???.net (+11,+3,-32)
>>402が互換性も考慮したコードを書いてくれるらしいぞ
405 : Name_Not - 2014/11/29(土) 16:24:22.90 ID:???.net (-19,-30,-97)
var str="aaaだよaaおわり"
for (var i=0; i<str.length; i++) {
if (str.substring(i, i+1) !== 'a') {
str = str.substring(0, i).replaceAll('a', '0') + str.substring(i);
break;
}
}
console.log(str);
406 : Name_Not - 2014/11/29(土) 16:29:48.63 ID:???.net (+64,+29,-16)
>>402
そういうくだらないレスいらんから
408 : Name_Not - 2014/11/29(土) 16:40:00.24 ID:???.net (+5,-27,-15)
参照ではなく代入の方を言ったんだが
401の3行目だぞ
409 : Name_Not - 2014/11/29(土) 16:50:45.54 ID:???.net (+3,-30,-97)
var str="aaaだよaaおわり"
for (var i=0; i<str.length; i++) {
if (str.substring(i, i+1) !== 'a') {
str = str.substring(0, i).replace(/a/g, '0') + str.substring(i);
break;
}
}
console.log(str);
410 : 402 - 2014/11/29(土) 16:52:37.64 ID:mPm2GTPI.net (+0,+29,-15)
>>408
失礼、見落としていた
確かに代入は無理だな
411 : Name_Not - 2014/11/29(土) 16:59:25.41 ID:???.net (-9,-29,-29)
>>407
ES5だと文字列の配列アクセスが正式サポートされてるのが分かって有用だった
412 : 402 - 2014/11/29(土) 17:07:35.75 ID:mPm2GTPI.net (-1,+28,-14)
正規表現を使わないならこんなところか
http://ideone.com/gBhnWI
413 : Name_Not - 2014/11/29(土) 17:52:50.20 ID:???.net (+16,-30,-156)
2本の直線を引きたいんですけどこうやると二番目の線が太くなってしまいました
どうやったら同じ長さの線を引けますか?

ctx.beginPath();
ctx.moveTo(0, 0);
ctx.lineTo(0, 100);
ctx.closePath();
ctx.stroke();

ctx.beginPath();
ctx.moveTo(100, 0);
ctx.lineTo(100, 100);
ctx.closePath();
ctx.stroke();
414 : Name_Not - 2014/11/29(土) 18:31:22.40 ID:???.net (+4,-30,-149)
>>413
ん?何でだろうな
デバイスの解像度が表示場所によって違う…
なんてことはないだろうな

とりあえずSVGの複合パス的に↓みたいにすればでいんでないか?(適当)

ctx.beginPath();
ctx.moveTo(0, 0);
ctx.lineTo(0, 100);
//ctx.closePath();
//ctx.stroke();

//ctx.beginPath();
ctx.moveTo(100, 0);
ctx.lineTo(100, 100);
ctx.closePath();
ctx.stroke();
415 : Name_Not - 2014/11/29(土) 19:07:27.87 ID:???.net (+38,-29,-63)
>>413
2本目が太いのではなく1本目が細くなっている
(0,0)はキャンバスの左上の本当にぎりぎりなので、そこから下に線を引くと線の太さの内の半分がキャンバス外にはみ出てしまう
解決方法は(0,0)とかギリギリに線を引かないこと

本当に1pxの線を引きたいなら、最初にctx.translate(.5, .5);すると幸せになれる
416 : Name_Not - 2014/11/29(土) 19:14:16.90 ID:???.net (+45,-30,-12)
>>397
>>398
callbackもループも使わないでやる方法もある

str.replace(/[^a][.\n]*/, '').replace(/a/g, '0') + str.replace(/^a+/, '')
417 : Name_Not - 2014/11/29(土) 19:26:38.31 ID:???.net (+11,-30,-45)
>>416
しっかりと検証してから回答してくれ

var str = 'aaaだよaaおわり';
str = str.replace(/[^a][.\n]*/, '').replace(/a/g, '0') + str.replace(/^a+/, '')
console.log(str); // 000よ00おわりだよaaおわり
418 : Name_Not - 2014/11/29(土) 19:39:37.46 ID:???.net (+64,+29,-1)
>>416がやりたかった事はこんな感じかね
http://ideone.com/pRsMVh
419 : Name_Not - 2014/11/29(土) 19:47:30.41 ID:???.net (+60,+27,+0)
>>415
これでした
ありがとうございます
420 : Name_Not - 2014/11/29(土) 20:50:27.58 ID:???.net (+8,-30,-34)
>>417
ドットが [] の中でただのドットだったのをうっかりしていた

str.replace(/[^a](.|\n)*/, '').replace(/a/g, '0') + str.replace(/^a+/, '')
421 : Name_Not - 2014/11/29(土) 21:03:35.11 ID:???.net (-2,-30,-12)
全ての文字にマッチは普通[\s\S]を使う
(.|\n)だと\u000dと\u2028と\u2029にマッチしない
422 : Name_Not - 2014/11/29(土) 21:24:09.51 ID:???.net (+29,-29,-58)
>>420
str を2回 replace しているのがパフォーマンス的に無駄な気がする
aaa と後述文字列を分けて処理をした方がパフォーマンスを稼げる
423 : Name_Not - 2014/11/29(土) 22:12:52.36 ID:???.net (+54,+27,-5)
>>422
うん、で、どのくらい?
424 : Name_Not - 2014/11/29(土) 22:40:30.32 ID:???.net (+91,+29,-5)
ここは煽るだけの人ときちんと回答orアドバイスする人の2種類いるんだな
425 : Name_Not - 2014/11/29(土) 23:05:48.17 ID:???.net (+69,+29,-16)
>>424
その2種類が別人だと思った?
427 : Name_Not - 2014/11/30(日) 01:24:24.27 ID:???.net (+23,+3,-28)
>>426
jQueryのコードと自分のコードを連結すればよい。
428 : Name_Not - 2014/11/30(日) 01:32:03.73 ID:???.net (+3,-29,-67)
asyncつけると非同期にロード、実行できる代わり順序性が保証されないらしい

だから基盤のライブラリ読み込みにつけるのは・・・ね

CDN使う、minifyされたもの使う、gz圧縮用意してブラウザが対応してれば
それ使うなど読み込み速くする別の方法探した方が無難
429 : Name_Not - 2014/11/30(日) 01:43:55.78 ID:???.net (+35,+2,-90)
jQueryよりも更に前に、JavaScriptローダーを読み込んで
そこからjQueryを読み込ませるようにすれば良い。
非同期でjQueryを読みつつ、完了したら自分のコードを実行してくれる。
JavaScriptローダーっていうのはRequireJSなどのこと。
430 : Name_Not - 2014/11/30(日) 11:17:39.22 ID:???.net (-9,-29,-32)
>>426
async を有効活用するなら、grunt 等で結合するしかない
http://www.atmarkit.co.jp/ait/articles/1403/04/news020.html
431 : Name_Not - 2014/11/30(日) 11:17:43.36 ID:???.net (-6,-24,+0)
○○JS
432 : Name_Not - 2014/11/30(日) 12:02:33.27 ID:???.net (+32,-29,-8)
internでテストするサンプルをおしえてください
433 : Name_Not - 2014/11/30(日) 12:17:37.97 ID:???.net (+62,+30,+0)
434 : Name_Not - 2014/11/30(日) 17:35:21.12 ID:???.net (-2,-30,-29)
var a = [];
console.log(a === []); // false

何故trueじゃないんですか
435 : Name_Not - 2014/11/30(日) 17:43:48.22 ID:???.net (+3,-30,-118)
var a = [];
console.log([] === []); // false
console.log(a === a); // true

[]は新規にオブジェクトを作成するから、違うオブジェクト同士を比較してfalseになる
同じオブジェクトはtrueになる
言語によっては中身を厳密に比較するのもあるが、JavaScriptはそういう仕様
436 : Name_Not - 2014/11/30(日) 19:41:37.31 ID:???.net (+54,+26,-6)
配列が空かどうかは長さで指定するしかないってことですか
437 : Name_Not - 2014/11/30(日) 19:50:39.95 ID:???.net (+46,+28,+0)
そうですね
438 : Name_Not - 2014/11/30(日) 20:00:09.15 ID:???.net (+3,-30,-124)
そうですね。じゃねーだろw

オブジェクトではなく、オブジェクトの中身で
比較する方法ぐらい教えられんのか

例えば、lodashという有名な汎用ライブラリには
そのためのメソッドが有る

http://lodash.com/docs#isEqual
var object = { 'name': 'fred' };
var copy = { 'name': 'fred' };

object == copy;
// → false

_.isEqual(object, copy);
// → true
439 : Name_Not - 2014/11/30(日) 20:07:27.45 ID:???.net (+57,+29,-8)
中身を比較する方法なんて誰も聞いてないだろ
440 : Name_Not - 2014/11/30(日) 20:17:13.75 ID:???.net (+57,+29,-34)
配列が空かどうかを調べるには、
空の配列と中身を比較するって
方法もあるのですよ。
441 : Name_Not - 2014/11/30(日) 20:25:10.43 ID:???.net (+50,+16,-17)
lodash使うやつはこんな方法を平気で勧めるんだな
442 : Name_Not - 2014/11/30(日) 20:30:49.38 ID:???.net (+9,-30,-40)
>>441
空かどうかだけを見たいならisEmptyっていうのもあるよ

http://lodash.com/docs#isEmpty

_.isEmpty([1, 2, 3]);
// → false

_.isEmpty({});
// → true

_.isEmpty('');
// → true
443 : Name_Not - 2014/11/30(日) 22:30:30.24 ID:???.net (+24,-30,-19)
a = [
[1,1,1],
[1,1,1],
]

縦2
横3

これを
a = [[1] * 3] * 2
みたいな感じで作る方法ありませんか
445 : Name_Not - 2014/11/30(日) 22:52:45.95 ID:???.net (-1,-29,-30)
>>443
*3 の方は、値をそのまま配列要素に代入していく操作になるが
*2 の方は、配列値を複製する操作も追加で必要になるだろう
446 : Name_Not - 2014/11/30(日) 23:01:31.01 ID:???.net (+37,+11,+0)
>>443
ない
447 : Name_Not - 2014/12/01(月) 08:40:19.47 ID:???.net (+0,-27,-2)
n次元配列を作る関数を自作して引数で指定だね
448 : Name_Not - 2014/12/01(月) 13:26:06.17 ID:???.net (-1,-29,-7)
textContentとinnerTextはどっち使えばいいのかおしえて
449 : Name_Not - 2014/12/01(月) 13:48:59.26 ID:???.net (-1,-29,-67)
W3Cのお墨付きのtextContent の方だろうな。

まあブラウザごとの挙動を少しでも合わせたいならjQueryのtextのような
ライブラリのメソッドを使う事だろう
450 : Name_Not - 2014/12/01(月) 15:02:14.84 ID:???.net (+53,+13,-5)
ライブラリ使うまでもなくinで判定すればいいだけじゃん
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について