私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.142 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
目的のものが自分でどういうものかわかっていないのに他人が作れるわけがない
>>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}
]
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}
]
否定演算子と共にトグルに使用出来る数値型はboolだけでしょうか?
function onclick(){
img.style.display = !img.style.display;
}
これでは反転しないようです。
別にboolを用意するでしょうか?
function onclick(){
img.style.display = !img.style.display;
}
これでは反転しないようです。
別にboolを用意するでしょうか?
>>604
これは酷い
これは酷い
>>605
プロパティの数値は2つとは限りませんものね
プロパティの数値は2つとは限りませんものね
input要素にidがない場合、click()メソッドは使えないでしょうか?
getelementbytagnameでinput取得してもclickは使えないようです
getelementbytagnameでinput取得してもclickは使えないようです
inputタグは一つしか設置していないですが、htmlcollectionから更に絞り込む必要があるでしょうか。
しかし絞り込む時にidなどの識別子がないといけないわけですよね。
しかし絞り込む時にidなどの識別子がないといけないわけですよね。
>>619
配列とはちと違うんだけどな
getElementsByTagName()
これよく見るとElementsって複数形になってるじゃろ
なので、該当する要素を詰め込んだコレクションていう
配列に似たオブジェクトで返ってくる
そんでもう書かれてるけど今となっては古いので
querySelectorか、querySelectorAll使う方がいい
配列とはちと違うんだけどな
getElementsByTagName()
これよく見るとElementsって複数形になってるじゃろ
なので、該当する要素を詰め込んだコレクションていう
配列に似たオブジェクトで返ってくる
そんでもう書かれてるけど今となっては古いので
querySelectorか、querySelectorAll使う方がいい
あ
querySelectorAllの返り値は
コレクションではなくノードリストね
使い勝手はそれほど変わらんと思うけど
ノードリストは後発なだけに
持ってるメソッドが洗練されてる
querySelectorAllの返り値は
コレクションではなくノードリストね
使い勝手はそれほど変わらんと思うけど
ノードリストは後発なだけに
持ってるメソッドが洗練されてる
>>620
なっ、、、なんだってー!!?
> そんでもう書かれてるけど今となっては古いので
> querySelectorか、querySelectorAll使う方がいい
qiitaの要素取得を説明しているページだと
http://qiita.com/amamamaou/items/25e8b4e1b41c8d3211f4
querySelectorとquerySelectorAllは遅いと書かれてるんで出来るだけ使わないようにしてきたんだけどもどっちが正しいんだ……
なっ、、、なんだってー!!?
> そんでもう書かれてるけど今となっては古いので
> querySelectorか、querySelectorAll使う方がいい
qiitaの要素取得を説明しているページだと
http://qiita.com/amamamaou/items/25e8b4e1b41c8d3211f4
querySelectorとquerySelectorAllは遅いと書かれてるんで出来るだけ使わないようにしてきたんだけどもどっちが正しいんだ……
>>602
おおっ!ありがとうございます
回答頂いた「pt順に並べて…」のコード+flat();で大丈夫そうです
ただ、Array.reduceの所が難解すぎてなぜこの解になるのかわからないです
少し解説してもらえるとありがたいのですが
ググってヒットしたページをいくつか読んでもちんぷんかんぷんでした
おおっ!ありがとうございます
回答頂いた「pt順に並べて…」のコード+flat();で大丈夫そうです
ただ、Array.reduceの所が難解すぎてなぜこの解になるのかわからないです
少し解説してもらえるとありがたいのですが
ググってヒットしたページをいくつか読んでもちんぷんかんぷんでした
>>623
なんで遅いと書かれたら使わないんだ?
なんで遅いと書かれたら使わないんだ?
reduceはその機能を知ってる人でさえ書いてあるコードが読みにくなるもの
reduceはその他のアルゴリズムを実装するための基礎だと考えたほうが良い
reduceはその他のアルゴリズムを実装するための基礎だと考えたほうが良い
>>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); // ここまでの結果…は改行制限が厳しいので省略。かつ次レスに続く
// (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); // ここまでの結果…は改行制限が厳しいので省略。かつ次レスに続く
>>636,637
とりあえずArray.reduceの挙動はなんとかつかめました
後ろにあるデフォルト値の役割と最初の返値が空なことに気がつかないと意味不明ですねこれ…
ともあれ大変勉強になりました
手取り足取りどうもありがとうございました
とりあえずArray.reduceの挙動はなんとかつかめました
後ろにあるデフォルト値の役割と最初の返値が空なことに気がつかないと意味不明ですねこれ…
ともあれ大変勉強になりました
手取り足取りどうもありがとうございました
>>638
哲学の唯名論的には、説明や理解に便利だからだろう。
lengthプロパティとspliceメソッドがあれば配列、それ以外の配列っぽいのはarray-likeってのが実用的。
あれ?これなんでmapで失敗するの?
→配列じゃなくて配列風オブジェクトだからだよ
これで済む。
それに包み隠さず詳しく説明すべきだと言うなら、その説明は分類を進め詳細化の方向に進むはずで、どれもこれも配列だよ、のような統一化の方向には行かないだろう。
哲学の唯名論的には、説明や理解に便利だからだろう。
lengthプロパティとspliceメソッドがあれば配列、それ以外の配列っぽいのはarray-likeってのが実用的。
あれ?これなんでmapで失敗するの?
→配列じゃなくて配列風オブジェクトだからだよ
これで済む。
それに包み隠さず詳しく説明すべきだと言うなら、その説明は分類を進め詳細化の方向に進むはずで、どれもこれも配列だよ、のような統一化の方向には行かないだろう。
>>640
その理屈では型付配列は配列ではないということ?
これなんでmapで失敗するの?
→mapメソッドを持っていないから
となるのが普通では?
そもそもmapって繰り返しラップするメソッドなんだから
別に配列だけに強く結びついてるものと考えるのは変でしょ
例えばその概念はイテレータにだって適応できるわけでそういう提案もあるし
http://github.com/tc39/proposal-iterator-helpers
Mapに増やそうっていう議論も昔っからよくされて来たでしょ
http://github.com/tc39/proposal-set-methods#semirelevant-previous-discussions
その理屈では型付配列は配列ではないということ?
これなんでmapで失敗するの?
→mapメソッドを持っていないから
となるのが普通では?
そもそもmapって繰り返しラップするメソッドなんだから
別に配列だけに強く結びついてるものと考えるのは変でしょ
例えばその概念はイテレータにだって適応できるわけでそういう提案もあるし
http://github.com/tc39/proposal-iterator-helpers
Mapに増やそうっていう議論も昔っからよくされて来たでしょ
http://github.com/tc39/proposal-set-methods#semirelevant-previous-discussions
これはなぜこう呼ぶのか、こう呼ばないのか
そんなことに理由はないし、そんなことを一々考えて呼んだりしないだろ
今までそう呼んできたからそう呼ぶというだけで
そこに理屈を持ち出すのは間違い
だれが何をどう呼ぼうが呼ぶまいが自由で
ここはそれを議論する場所ではない
そんなことに理由はないし、そんなことを一々考えて呼んだりしないだろ
今までそう呼んできたからそう呼ぶというだけで
そこに理屈を持ち出すのは間違い
だれが何をどう呼ぼうが呼ぶまいが自由で
ここはそれを議論する場所ではない
実用的には誤解を招く表現は避けるべきってところじゃないかな
あと生きてる奴を配列で括るのは流石にマズくね?
あと生きてる奴を配列で括るのは流石にマズくね?
いいわけがましいうそつきだな
JavaScriptではarrayとarray-like objectをなぜわざわざ区別してるのかを考えればすむこと
JavaScriptではarrayとarray-like objectをなぜわざわざ区別してるのかを考えればすむこと
そしてどうでもいい議論にこういう勘違い君が乱入して最初の話がわからなくなるまでがこのスレのいつもの流れ
誰もarrayとarray-like objectの話なんてしてないでしょーがw
誰もarrayとarray-like objectの話なんてしてないでしょーがw
>>632がそのものだと思うが
そもそも何がArrayかってことすら難しい
例えばArray.isArrayに頼ろうと思っても
そいつは内部メソッドしか見てないから
全くArrayの振る舞いをしないオブジェクトでもtrueと判定してしまう
逆にProxyでその内部メソッドをそっくり真似たオブジェクトを作って
振る舞い性質は完全にArrayとおなじでもisArrayはfalseなわけだし
例えばArray.isArrayに頼ろうと思っても
そいつは内部メソッドしか見てないから
全くArrayの振る舞いをしないオブジェクトでもtrueと判定してしまう
逆にProxyでその内部メソッドをそっくり真似たオブジェクトを作って
振る舞い性質は完全にArrayとおなじでもisArrayはfalseなわけだし
①番の考え方
Array ≡ 配列
Array Like → 配列のような(配列ではない)
Arrayではない → 配列ではない
②番の考え方
Array ∈ 配列
Array Like → Arrayのような(Arrayではない)
Arrayではない → 配列ではあるかもしれない
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 スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.142 + (926) - [100%] - 2019/12/23 13:15
- + JavaScript の質問用スレッド vol.141 + (881) - [97%] - 2021/4/19 9:00
- + JavaScript の質問用スレッド vol.102 + (1001) - [97%] - 2012/9/11 17:30
- + JavaScript の質問用スレッド vol.112 + (1001) - [97%] - 2013/11/27 16:46
- + JavaScript の質問用スレッド vol.132 + (1001) - [97%] - 2018/4/19 11:00
- + JavaScript の質問用スレッド vol.122 + (116) - [97%] - 2018/5/2 18:30
- + JavaScript の質問用スレッド vol.122 + (1004) - [97%] - 2015/2/14 4:45
- + JavaScript の質問用スレッド vol.140 + (1001) - [97%] - 2019/9/19 10:45
- + JavaScript の質問用スレッド vol.141 + (1001) - [97%] - 2019/9/22 23:15
- + JavaScript の質問用スレッド vol.143 + (753) - [97%] - 2020/4/19 5:00
- + JavaScript の質問用スレッド vol.144 + (288) - [97%] - 2020/5/17 20:00
- + JavaScript の質問用スレッド vol.123 + (966) - [95%] - 2020/10/20 2:30
- + JavaScript の質問用スレッド vol.115 + (1001) - [95%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2022/11/29 16:30
- + JavaScript の質問用スレッド vol.120 + (1002) - [95%] - 2014/11/8 1:15
- + JavaScript の質問用スレッド vol.119 + (1002) - [95%] - 2014/10/3 15:30
トップメニューへ / →のくす牧場書庫について