のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,898人
昨日: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一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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