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

    私的良スレ書庫

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

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

    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
    601 : Name_Not - 2020/08/05(水) 14:28:27.01 ID:???.net (+27,+29,-8)
    目的のものが自分でどういうものかわかっていないのに他人が作れるわけがない
    602 : Name_Not - 2020/08/05(水) 14:36:59 ID:???.net (-18,-30,+0)
    >>594 の答えが >>594 の予想通り合計点として、
    var 下の配列 = [
    {team: 'a', pt: 4},
    {team: 'a', pt: 2},
    {team: 'b', pt: 3},
    {team: 'b', pt: 6},
    {team: 'c', pt: 0},
    {team: 'c', pt: 2},
    ];
    // pt順に並べてからチームごとにまとめる
    var result = Object.values(下の配列.sort((a, b) => b.pt - a.pt).reduce((acc, row) => {
    acc[row.team] = [...(acc[row.team] || []), row];
    return acc;
    }, {}))
    // チームを合計点数でソート
    .sort((teamA, teamB) => teamB.reduce((acc, row) => acc + row.pt) - teamA.reduce((acc, row) => acc + row.pt))
    // チームごとにまとめていたのを解除
    .flat();
    console.log(result);
    // 結果↓
    [
    {team: "b", pt: 6},
    {team: "b", pt: 3},
    {team: "a", pt: 4},
    {team: "a", pt: 2},
    {team: "c", pt: 2},
    {team: "c", pt: 0}
    ]
    604 : Name_Not - 2020/08/05(水) 15:26:48.47 ID:???.net (-23,-30,-59)
    否定演算子と共にトグルに使用出来る数値型はboolだけでしょうか?
    function onclick(){
    img.style.display = !img.style.display;
    }
    これでは反転しないようです。
    別にboolを用意するでしょうか?
    605 : Name_Not - 2020/08/05(水) 15:39:04.71 ID:???.net (+25,+29,-16)
    めちゃくちゃな理解の仕方だなw
    607 : Name_Not - 2020/08/05(水) 15:42:37.19 ID:???.net (+11,+21,+0)
    >>604
    これは酷い
    608 : Name_Not - 2020/08/05(水) 15:43:35.12 ID:???.net (+10,+9,-16)
    >>605
    プロパティの数値は2つとは限りませんものね
    610 : Name_Not - 2020/08/05(水) 16:15:36.00 ID:???.net (-27,-30,-87)
    input要素にidがない場合、click()メソッドは使えないでしょうか?
    getelementbytagnameでinput取得してもclickは使えないようです
    612 : Name_Not - 2020/08/05(水) 16:40:19.07 ID:???.net (+23,+28,-27)
    >>610
    使えますよ
    要素を指定する方法を学びましょう
    616 : Name_Not - 2020/08/05(水) 17:14:53.90 ID:???.net (-11,-9,-28)
    inputタグは一つしか設置していないですが、htmlcollectionから更に絞り込む必要があるでしょうか。
    しかし絞り込む時にidなどの識別子がないといけないわけですよね。
    619 : Name_Not - 2020/08/05(水) 17:17:43.34 ID:???.net (+19,+24,+0)
    なるほど、配列になっているんですね。
    620 : Name_Not - 2020/08/05(水) 18:03:47.42 ID:???.net (-5,-30,-70)
    >>619
    配列とはちと違うんだけどな

    getElementsByTagName()

    これよく見るとElementsって複数形になってるじゃろ
    なので、該当する要素を詰め込んだコレクションていう
    配列に似たオブジェクトで返ってくる

    そんでもう書かれてるけど今となっては古いので
    querySelectorか、querySelectorAll使う方がいい
    621 : Name_Not - 2020/08/05(水) 18:07:48.35 ID:???.net (+27,+29,-49)

    querySelectorAllの返り値は
    コレクションではなくノードリストね

    使い勝手はそれほど変わらんと思うけど
    ノードリストは後発なだけに
    持ってるメソッドが洗練されてる
    623 : Name_Not - 2020/08/05(水) 18:20:02.18 ID:???.net (-25,-30,-56)
    >>620
    なっ、、、なんだってー!!?

    > そんでもう書かれてるけど今となっては古いので
    > querySelectorか、querySelectorAll使う方がいい

    qiitaの要素取得を説明しているページだと

    http://qiita.com/amamamaou/items/25e8b4e1b41c8d3211f4

    querySelectorとquerySelectorAllは遅いと書かれてるんで出来るだけ使わないようにしてきたんだけどもどっちが正しいんだ……
    624 : Name_Not - 2020/08/05(水) 18:26:29.75 ID:???.net (+27,+29,-8)
    自己解決。ときと場合によりけりということか
    625 : Name_Not - 2020/08/05(水) 19:14:00.14 ID:???.net (+28,+29,-44)
    >>602
    おおっ!ありがとうございます
    回答頂いた「pt順に並べて…」のコード+flat();で大丈夫そうです
    ただ、Array.reduceの所が難解すぎてなぜこの解になるのかわからないです
    少し解説してもらえるとありがたいのですが
    ググってヒットしたページをいくつか読んでもちんぷんかんぷんでした
    626 : Name_Not - 2020/08/05(水) 20:35:49.01 ID:???.net (-29,-29,-43)
    http://ideone.com/tUl75p
    clickを使用して画像を消したいのですが、このコードの場合は上手く消えないです
    しかしalertは動作します
    何が原因かわかりませんか?
    627 : Name_Not - 2020/08/05(水) 20:43:01.44 ID:???.net (+24,+29,-19)
    >>623
    なんで遅いと書かれたら使わないんだ?
    628 : Name_Not - 2020/08/05(水) 20:47:27.82 ID:???.net (-27,-25,-26)
    reduceはその機能を知ってる人でさえ書いてあるコードが読みにくなるもの
    reduceはその他のアルゴリズムを実装するための基礎だと考えたほうが良い
    629 : Name_Not - 2020/08/05(水) 20:50:53.23 ID:???.net (+4,+8,-14)
    >>620
    うそは言わないように
    配列は配列
    632 : Name_Not - 2020/08/05(水) 20:57:55.68 ID:???.net (+15,+11,-29)
    >>629
    うそは言わないように
    配列風オブジェクトは配列ではない
    633 : Name_Not - 2020/08/05(水) 21:02:34.72 ID:???.net (+24,+29,-3)
    >>626
    そのまま張り付けてみたけど消えるぞ?
    http://jsfiddle.net/ho9uvj7x/
    635 : Name_Not - 2020/08/05(水) 21:26:17.30 ID:???.net (-14,-8,-4)
    >>626
    トグル操作は標準機能を使った方が間違いが少ない
    http://jsfiddle.net/gwqh87v6/
    636 : Name_Not - 2020/08/05(水) 21:49:01.51 ID:???.net (-19,-30,+0)
    >>625 そこは、以下3ステップを1つにまとめている。
    // (A) pt順(降順)に並べる
    var result = 下の配列.sort((a, b) => b.pt - a.pt); // ここまでの結果↓
    [
    { team: "b", pt: 6 },
    { team: "a", pt: 4 },
    { team: "b", pt: 3 },
    { team: "a", pt: 2 },
    { team: "c", pt: 2 },
    { team: "c", pt: 0 }
    ]
    // (B) テームごとにまとめる
    result = result.reduce((acc, row) => {
    acc[row.team] = [...(acc[row.team] || []), row];
    return acc;
    }, {}); // ここまでの結果↓
    {
    b: [
    { team: "b", pt: 6 },
    { team: "b", pt: 3 }
    ],
    a: [
    { team: "a", pt: 4 },
    { team: "a", pt: 2 }
    ],
    c: [
    { team: "c", pt: 2 },
    { team: "c", pt: 0 }
    ]
    }
    // (C) チームごとにまとめるために使っただけなので、キーを捨て値だけで(配列の)配列にする。
    result = Object.values(result); // ここまでの結果…は改行制限が厳しいので省略。かつ次レスに続く
    638 : Name_Not - 2020/08/05(水) 22:21:07.75 ID:???.net (+6,+1,-15)
    >>632
    配列は配列
    Arrayのインスタンスだけが配列なわけではない
    TypedArrayだってあるし
    本質的に違わないものをあえてグループ分けする意味はなんだ?
    639 : Name_Not - 2020/08/05(水) 22:36:05.45 ID:???.net (+30,+29,-59)
    >>636,637
    とりあえずArray.reduceの挙動はなんとかつかめました
    後ろにあるデフォルト値の役割と最初の返値が空なことに気がつかないと意味不明ですねこれ…
    ともあれ大変勉強になりました
    手取り足取りどうもありがとうございました
    640 : Name_Not - 2020/08/05(水) 22:44:16.17 ID:???.net (+31,+29,-162)
    >>638
    哲学の唯名論的には、説明や理解に便利だからだろう。
    lengthプロパティとspliceメソッドがあれば配列、それ以外の配列っぽいのはarray-likeってのが実用的。

    あれ?これなんでmapで失敗するの?
    →配列じゃなくて配列風オブジェクトだからだよ

    これで済む。
    それに包み隠さず詳しく説明すべきだと言うなら、その説明は分類を進め詳細化の方向に進むはずで、どれもこれも配列だよ、のような統一化の方向には行かないだろう。
    642 : Name_Not - 2020/08/05(水) 22:59:34.15 ID:???.net (-22,-29,-86)
    >>640
    その理屈では型付配列は配列ではないということ?

    これなんでmapで失敗するの?
    →mapメソッドを持っていないから
    となるのが普通では?

    そもそもmapって繰り返しラップするメソッドなんだから
    別に配列だけに強く結びついてるものと考えるのは変でしょ

    例えばその概念はイテレータにだって適応できるわけでそういう提案もあるし
    http://github.com/tc39/proposal-iterator-helpers

    Mapに増やそうっていう議論も昔っからよくされて来たでしょ
    http://github.com/tc39/proposal-set-methods#semirelevant-previous-discussions
    643 : Name_Not - 2020/08/05(水) 23:05:39.39 ID:???.net (+33,+30,-47)
    これはなぜこう呼ぶのか、こう呼ばないのか
    そんなことに理由はないし、そんなことを一々考えて呼んだりしないだろ
    今までそう呼んできたからそう呼ぶというだけで
    そこに理屈を持ち出すのは間違い
    だれが何をどう呼ぼうが呼ぶまいが自由で
    ここはそれを議論する場所ではない
    644 : Name_Not - 2020/08/05(水) 23:07:41.08 ID:???.net (+27,+29,-27)
    実用的には誤解を招く表現は避けるべきってところじゃないかな
    あと生きてる奴を配列で括るのは流石にマズくね?
    645 : Name_Not - 2020/08/05(水) 23:23:06 ID:???.net (-23,-21,-13)
    いいわけがましいうそつきだな

    JavaScriptではarrayとarray-like objectをなぜわざわざ区別してるのかを考えればすむこと
    646 : Name_Not - 2020/08/05(水) 23:29:41 ID:???.net (+30,+29,-16)
    そしてどうでもいい議論にこういう勘違い君が乱入して最初の話がわからなくなるまでがこのスレのいつもの流れ
    誰もarrayとarray-like objectの話なんてしてないでしょーがw
    647 : Name_Not - 2020/08/05(水) 23:39:21.51 ID:???.net (+22,+26,-13)
    >>632がそのものだと思うが
    649 : Name_Not - 2020/08/05(水) 23:47:04.30 ID:???.net (-26,-29,-115)
    そもそも何がArrayかってことすら難しい
    例えばArray.isArrayに頼ろうと思っても
    そいつは内部メソッドしか見てないから
    全くArrayの振る舞いをしないオブジェクトでもtrueと判定してしまう
    逆にProxyでその内部メソッドをそっくり真似たオブジェクトを作って
    振る舞い性質は完全にArrayとおなじでもisArrayはfalseなわけだし
    650 : Name_Not - 2020/08/05(水) 23:53:13.19 ID:???.net (-27,-30,-37)
    ①番の考え方
    Array ≡ 配列
    Array Like → 配列のような(配列ではない)
    Arrayではない → 配列ではない

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

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


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