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

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

JavaScript覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
401 = :

for (var i=0; i<str.length; i++) {
if (str[i] === "a') {
str[i] = '0';
} else {
break;
}
}

402 = :

>>401
ES5仕様だな
後方互換性は切り捨てか

404 = :

>>402が互換性も考慮したコードを書いてくれるらしいぞ

406 = :

>>402
そういうくだらないレスいらんから

408 = :

参照ではなく代入の方を言ったんだが
401の3行目だぞ

409 = :

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 = 407 :

>>408
失礼、見落としていた
確かに代入は無理だな

413 = :

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 = :

>>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 = :

>>413
2本目が太いのではなく1本目が細くなっている
(0,0)はキャンバスの左上の本当にぎりぎりなので、そこから下に線を引くと線の太さの内の半分がキャンバス外にはみ出てしまう
解決方法は(0,0)とかギリギリに線を引かないこと

本当に1pxの線を引きたいなら、最初にctx.translate(.5, .5);すると幸せになれる

416 = :

>>397
>>398
callbackもループも使わないでやる方法もある

str.replace(/[^a][.\n]*/, '').replace(/a/g, '0') + str.replace(/^a+/, '')

417 = :

>>416
しっかりと検証してから回答してくれ

var str = 'aaaだよaaおわり';
str = str.replace(/[^a][.\n]*/, '').replace(/a/g, '0') + str.replace(/^a+/, '')
console.log(str); // 000よ00おわりだよaaおわり

418 = :

>>416がやりたかった事はこんな感じかね
http://ideone.com/pRsMVh

419 = :

>>415
これでした
ありがとうございます

420 = :

>>417
ドットが [] の中でただのドットだったのをうっかりしていた

str.replace(/[^a](.|\n)*/, '').replace(/a/g, '0') + str.replace(/^a+/, '')

422 = :

>>420
str を2回 replace しているのがパフォーマンス的に無駄な気がする
aaa と後述文字列を分けて処理をした方がパフォーマンスを稼げる

423 = :

>>422
うん、で、どのくらい?

424 = :

ここは煽るだけの人ときちんと回答orアドバイスする人の2種類いるんだな

425 = :

>>424
その2種類が別人だと思った?

427 = :

>>426
jQueryのコードと自分のコードを連結すればよい。

428 = :

asyncつけると非同期にロード、実行できる代わり順序性が保証されないらしい

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

CDN使う、minifyされたもの使う、gz圧縮用意してブラウザが対応してれば
それ使うなど読み込み速くする別の方法探した方が無難

429 = :

jQueryよりも更に前に、JavaScriptローダーを読み込んで
そこからjQueryを読み込ませるようにすれば良い。
非同期でjQueryを読みつつ、完了したら自分のコードを実行してくれる。
JavaScriptローダーっていうのはRequireJSなどのこと。

432 = :

internでテストするサンプルをおしえてください

433 = :

>>432
http://github.com/theintern/intern/wiki/Writing-Tests-with-Intern

435 = :

var a = [];
console.log([] === []); // false
console.log(a === a); // true

[]は新規にオブジェクトを作成するから、違うオブジェクト同士を比較してfalseになる
同じオブジェクトはtrueになる
言語によっては中身を厳密に比較するのもあるが、JavaScriptはそういう仕様

436 = :

配列が空かどうかは長さで指定するしかないってことですか

437 = :

そうですね

438 = :

そうですね。じゃねーだろw

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

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

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

object == copy;
// → false

_.isEqual(object, copy);
// → true

439 = :

中身を比較する方法なんて誰も聞いてないだろ

440 = :

配列が空かどうかを調べるには、
空の配列と中身を比較するって
方法もあるのですよ。

441 = :

lodash使うやつはこんな方法を平気で勧めるんだな

442 = :

>>441
空かどうかだけを見たいならisEmptyっていうのもあるよ

http://lodash.com/docs#isEmpty

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

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

_.isEmpty('');
// → true

443 = :

a = [
[1,1,1],
[1,1,1],
]

縦2
横3

これを
a = [[1] * 3] * 2
みたいな感じで作る方法ありませんか

446 = :

>>443
ない

447 = :

n次元配列を作る関数を自作して引数で指定だね

450 = :

ライブラリ使うまでもなくinで判定すればいいだけじゃん


←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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