JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください
■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」だけでなく「意見」を出しても良い。
■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。
【条件】期待する回答の条件を書いてください。
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです
+ JavaScript の質問用スレッド vol.133 +
■ このスレッドは過去ログ倉庫に格納されています
2018/04/16(月) 00:09:43.45ID:???
2018/05/15(火) 16:04:21.29ID:???
ぐぐったらcaret.jsというのがあるみたいだけど
https://jsfiddle.net/sbrqvc2q/
https://jsfiddle.net/sbrqvc2q/
2018/05/16(水) 06:07:00.35ID:???
そういうのあるんですね
ありがとうございます
ただ要素中のHTMLを書き換えてキャレットを戻せばいいと思っていましたが
よく考えると文字を一文字書き加えるごとに全領域を書き換えるエディタなんてないわけで
テキストノードの中に潜って文字のレベルで操作する必要があると思います
そのためのオブジェクトがRangeオブジェクトだったと思います
面倒くさいですが、面倒くさい方法しかないなら、するしか仕方ないですね・・
ありがとうございます
ただ要素中のHTMLを書き換えてキャレットを戻せばいいと思っていましたが
よく考えると文字を一文字書き加えるごとに全領域を書き換えるエディタなんてないわけで
テキストノードの中に潜って文字のレベルで操作する必要があると思います
そのためのオブジェクトがRangeオブジェクトだったと思います
面倒くさいですが、面倒くさい方法しかないなら、するしか仕方ないですね・・
2018/05/16(水) 08:26:59.14ID:???
改行ごとにspanやpで区切るなどして部分的な指定をしやすくすれば、
HTMLの書き換えでもいいのかもしれません
ただ、何か問題があったから前回そうしなかったのではないか、という気もします
HTMLの書き換えでもいいのかもしれません
ただ、何か問題があったから前回そうしなかったのではないか、という気もします
2018/05/16(水) 11:43:04.01ID:???
SelectionオブジェクトとRangeオブジェクトには、
ひととおりの API が定義されていますが、あまり使われていません。
本書でも解説しません。
(…)
Webアプリケーション上でリッチテキスト編集機能が必要な場合は、
ブラウザ間での差異を吸収してくれる既存のソリューションを適用するとよいでしょう。
インターネット上を探せば、そのようなエディタ部品がたくさん転がっています。
名著と名高いサイ本も、リッチテキスト編集周辺はそっけない記述&放り投げです
「たくさん転がっています」って、
これはそういうエディタ部品を作りたい人が読む本じゃないのかと問い詰めたいです
ひととおりの API が定義されていますが、あまり使われていません。
本書でも解説しません。
(…)
Webアプリケーション上でリッチテキスト編集機能が必要な場合は、
ブラウザ間での差異を吸収してくれる既存のソリューションを適用するとよいでしょう。
インターネット上を探せば、そのようなエディタ部品がたくさん転がっています。
名著と名高いサイ本も、リッチテキスト編集周辺はそっけない記述&放り投げです
「たくさん転がっています」って、
これはそういうエディタ部品を作りたい人が読む本じゃないのかと問い詰めたいです
2018/05/16(水) 12:06:09.71ID:???
>>525
テキストエディタの作り方って本があると思ってんの?
テキストエディタの作り方って本があると思ってんの?
527Name_Not_Found
2018/05/16(水) 12:12:00.56ID:nGgdPMwx 配列について質問です
var arr = [1, 2, 3, …]; と続く配列をタグで囲み、IDを割りふるにはどうすればいいでしょうか?
<b id="1">1</b> <b id="2">2</b> <b id="3">3</b> … のようにしたいです
下を試しましたが、IDにすべての配列が入ってしまったため、arr[0] と arr[1] としたら、3番目以降が2のままでした
console.log('<b id="' + arr + '">' + arr.join('</b> <b id="' + arr + '">') + '</b>');
よろしくおねがいします。
var arr = [1, 2, 3, …]; と続く配列をタグで囲み、IDを割りふるにはどうすればいいでしょうか?
<b id="1">1</b> <b id="2">2</b> <b id="3">3</b> … のようにしたいです
下を試しましたが、IDにすべての配列が入ってしまったため、arr[0] と arr[1] としたら、3番目以降が2のままでした
console.log('<b id="' + arr + '">' + arr.join('</b> <b id="' + arr + '">') + '</b>');
よろしくおねがいします。
2018/05/16(水) 13:56:16.68ID:???
>あまり使われていません。
ガリガリ使っとるがな
ガリガリ使っとるがな
2018/05/16(水) 17:09:18.55ID:???
>>527
var ary = [1, 2, 3, 4];
console.log(ary.reduce((acc, n) => acc + `<b id="${n}">${n}</b>`, ''));
var ary = [1, 2, 3, 4];
console.log(ary.reduce((acc, n) => acc + `<b id="${n}">${n}</b>`, ''));
2018/05/16(水) 17:13:13.29ID:???
>>529
ありがとうございました!
ありがとうございました!
2018/05/16(水) 19:24:22.87ID:???
>>529
console.log(ary.reduce((acc, n) => acc + `<b id="${n}">${n}</b>`, ''));
console.log(ary.map(n => `<b id="${n}">${n}</b>`).join(''));
上の方を選んだ理由は?
console.log(ary.reduce((acc, n) => acc + `<b id="${n}">${n}</b>`, ''));
console.log(ary.map(n => `<b id="${n}">${n}</b>`).join(''));
上の方を選んだ理由は?
2018/05/16(水) 19:37:19.81ID:???
どっちでもいいけど新しい配列ちゃん生んですぐ殺すとかかわいそうやん
2018/05/16(水) 21:46:41.00ID:???
そんな無理にmapだのコールバックだの使わなくとも
昔っからある
(''+ary).replace(/(\d+),?/g,'<b id="$1">$1</b>')
でいいじゃん
昔っからある
(''+ary).replace(/(\d+),?/g,'<b id="$1">$1</b>')
でいいじゃん
2018/05/16(水) 22:03:54.34ID:???
ループさせますが何か
2018/05/16(水) 23:57:30.03ID:???
2018/05/17(木) 00:38:42.11ID:???
中途半端に新作作るならいっそリメイクの方が売れると思う
2018/05/17(木) 00:42:57.16ID:???
jsは昔っからコールバック使うが。
そういう言語だ。
pythonとかから来た人かな?
そういう言語だ。
pythonとかから来た人かな?
2018/05/17(木) 00:59:32.71ID:???
あ?昔から? JavaScriptでmapやreduceが
使えるようになったのはIE9からなんだが?
昔はそんなコード書いてねーよ
使えるようになったのはIE9からなんだが?
昔はそんなコード書いてねーよ
2018/05/17(木) 01:40:37.68ID:???
IEをサポート対象外としてきたものは幸福である
2018/05/17(木) 01:52:20.30ID:???
IE以外はネスケしかないって時代を知らんのだろうなw
それでよく昔からなんて言えたものだ
それでよく昔からなんて言えたものだ
2018/05/17(木) 02:11:05.39ID:???
2018/05/17(木) 03:14:54.20ID:???
昔から使うsetTimeoutもcallbackだな
callbackが昔から使われていることと、replace()が昔からあることは別だが
callbackで配列や文字列操作する関数って昔からあったっけ?
callbackが昔から使われていることと、replace()が昔からあることは別だが
callbackで配列や文字列操作する関数って昔からあったっけ?
2018/05/17(木) 06:21:36.32ID:???
>>535
そんなんだから君には成長がないんだよ
そんなんだから君には成長がないんだよ
2018/05/17(木) 06:29:42.28ID:???
はぁ?去年から10kgは成長しとるで?
2018/05/17(木) 07:30:57.08ID:???
もう成長する毛髪もないクセに・・・
546Name_Not_Found
2018/05/17(木) 09:12:07.01ID:+SF4BPiN 自演で誤魔化し乙w
「昔からある〜でいいじゃん」とか言ってるくせに人には君には成長がないキリッとか笑うww
「昔からある〜でいいじゃん」とか言ってるくせに人には君には成長がないキリッとか笑うww
2018/05/17(木) 20:16:53.61ID:???
何が言いたいんだこいつ
喧嘩したいだけのJS無関係レスは他所でやれ
喧嘩したいだけのJS無関係レスは他所でやれ
2018/05/17(木) 21:16:59.69ID:???
>>533
無理に正規表現を使わずとも、昔からあるfor文でいいじゃん
for (var i = 0, l = ary.length, s = ''; i < l; ++i) {
s += '<b id="' + ary[i] + '">' + ary[i] + '</b>';
}
無理に正規表現を使わずとも、昔からあるfor文でいいじゃん
for (var i = 0, l = ary.length, s = ''; i < l; ++i) {
s += '<b id="' + ary[i] + '">' + ary[i] + '</b>';
}
2018/05/17(木) 21:29:14.42ID:???
これが見慣れてるな
2018/05/17(木) 21:48:22.10ID:???
ループ外で使うsをループ初期化部で宣言するのは駄目じゃないか
2018/05/17(木) 22:02:15.20ID:???
一旦代入したsを更新し続けるのも良くないよ
2018/05/17(木) 22:08:05.80ID:???
全部const使えってか?
2018/05/17(木) 22:09:24.93ID:???
それが良いと思う
2018/05/17(木) 22:26:25.10ID:???
>>550
それは確かだが、昔からシリーズとしてはsを外に出すのが正解だな
それは確かだが、昔からシリーズとしてはsを外に出すのが正解だな
2018/05/17(木) 22:37:26.27ID:???
>>533は数字以外が来たときに壊れる一番ダメなやつじゃん
2018/05/17(木) 22:43:15.75ID:???
変数の異目的の再利用が、コードの見通し上よろしくないのは知ってるが
再代入も追記追加変更もNGというのは初めて聞いたな
再代入も追記追加変更もNGというのは初めて聞いたな
2018/05/18(金) 03:15:41.51ID:???
前から気になってたけどconstの変数は再代入するとエラー出るけど
const obj={}みたいにオブジェクトにすると中は再代入しまくりなのが混乱するのですが
これはobjectとかarrayはconst宣言しない方がいいってことですか?
const obj={}みたいにオブジェクトにすると中は再代入しまくりなのが混乱するのですが
これはobjectとかarrayはconst宣言しない方がいいってことですか?
2018/05/18(金) 03:53:08.93ID:???
他のところでうっかりvarで再定義再代入されないだけと考えたほうがいいってこと
2018/05/18(金) 05:49:13.18ID:???
2018/05/18(金) 06:00:17.51ID:???
const宣言された変数の中身がオブジェクトや配列だった時に中身の操作が可能なのは、なんで?
参照だから、って考えたら混乱しないし一応筋は通るけど、必然性はないよね
参照だから、って考えたら混乱しないし一応筋は通るけど、必然性はないよね
2018/05/18(金) 06:19:08.20ID:???
const には「再代入不可」以外の意味はないからね
プロパティの更新も禁止したいなら
Object.defineProperty とか Object.freeze
プロパティの更新も禁止したいなら
Object.defineProperty とか Object.freeze
2018/05/18(金) 17:21:46.36ID:???
2018/05/18(金) 18:58:08.98ID:???
constを基本にするのは別に悪いことじゃないよ
必須かと聞かれると自分はletばかりだけど
必須かと聞かれると自分はletばかりだけど
564Name_Not_Found
2018/05/18(金) 19:35:55.40ID:rKRag9JE TDZのクソ挙動が気に入らないのでvarです。
functionスコープで特に問題ない。
大規模開発するなら使うけど。
しないなら必要ない。不便なだけだぞ。
functionスコープで特に問題ない。
大規模開発するなら使うけど。
しないなら必要ない。不便なだけだぞ。
2018/05/18(金) 21:06:39.05ID:???
それ本当にTDZの挙動に不満持ってるのか?
再宣言禁止で
let a = hoge
と次の
a = fuga
が揃わないとかならまだ少し分かるが
定義場所前でのundefinedを期待する必要性なんてまず無いだろう
再宣言禁止で
let a = hoge
と次の
a = fuga
が揃わないとかならまだ少し分かるが
定義場所前でのundefinedを期待する必要性なんてまず無いだろう
2018/05/18(金) 23:26:18.45ID:???
TDZは重宝してる
2018/05/19(土) 02:25:49.15ID:???
fromってどういうとき使うの・・?
var arr=['kyoto','oosaka'];
console.log(Array.from(arr, n=>`${n}-fu`).join(", "));
console.log(arr.map(n=>`${n}-fu`).join(", "));
mapでいいじゃん・・みたいな
var arr=['kyoto','oosaka'];
console.log(Array.from(arr, n=>`${n}-fu`).join(", "));
console.log(arr.map(n=>`${n}-fu`).join(", "));
mapでいいじゃん・・みたいな
2018/05/19(土) 02:34:37.26ID:???
配列風オブジェクトを配列に変換したい時に使う
569Name_Not_Found
2018/05/19(土) 13:30:15.68ID:TKsYmqdA [...配列風オブジェクト]でいいじゃん
2018/05/19(土) 17:23:00.70ID:???
2018/05/19(土) 18:31:51.94ID:???
古いブラウザ持ち出したらfromも使えないじゃん
572Name_Not_Found
2018/05/19(土) 18:36:57.78ID:O/Yxf4Ui fromはpolifilでできる
スプレッド演算子はbabelで使えるようになったとしても
NodeListでは使えない
スプレッド演算子はbabelで使えるようになったとしても
NodeListでは使えない
2018/05/19(土) 18:55:29.64ID:???
だったらアロー関数もletもconstもトレイリングカンマも使うなよ
2018/05/19(土) 19:12:45.53ID:???
ぶっちゃけ必要が無い限り使わんなあ
2018/05/19(土) 19:38:52.11ID:???
>>573
babelで変換可能なものは使うよw
babelで変換可能なものは使うよw
2018/05/19(土) 21:28:56.72ID:???
2018/05/19(土) 21:32:49.32ID:???
>>568
iterableでない配列likeオブジェクトに対応できない
iterableでない配列likeオブジェクトに対応できない
2018/05/20(日) 14:37:34.10ID:???
そういうツッコミは感心しないな
この靴は山を登るときに使う
いや、エベレストに対応できない
みたいな
この靴は山を登るときに使う
いや、エベレストに対応できない
みたいな
2018/05/20(日) 16:43:05.57ID:???
熊の毛皮はあんまり寒いと役に立たないらしい。そういうときは犬の毛皮を使うそうだ。
なんだ、熊の毛皮つっかえねーな
なんだ、熊の毛皮つっかえねーな
2018/05/20(日) 17:29:49.09ID:???
じゃああんまり寒いと熊、絶滅しちゃう?
2018/05/20(日) 18:13:12.78ID:???
>>579
この場合は、Array.fromは不要というニュアンスへの反論だからおかしくはないと思うが
この場合は、Array.fromは不要というニュアンスへの反論だからおかしくはないと思うが
2018/05/20(日) 19:21:02.36ID:???
>>581
熊には体脂肪という毛皮をサポートするものがあるから大丈夫
熊には体脂肪という毛皮をサポートするものがあるから大丈夫
2018/05/20(日) 19:37:28.85ID:???
俺にも脂肪はたくさんついているが?
2018/05/20(日) 20:40:15.97ID:???
髪の毛がついてないから寒さに弱いんだよ
2018/05/21(月) 18:45:07.49ID:???
2018/05/21(月) 21:14:25.17ID:???
スマートホン
スマフォ
スマフォ
2018/05/21(月) 21:18:23.96ID:???
セマフォ
589Name_Not_Found
2018/05/21(月) 23:41:14.10ID:N1KmZ/qF 全くの初心者ですが、
便利なウェブサービスを作りたくてJavaScriptを勉強しはじめました。
質問ですが、
ブログによく貼ってある、
カエレバ、ヨメレバってJavaScriptでできているのですか?
便利なウェブサービスを作りたくてJavaScriptを勉強しはじめました。
質問ですが、
ブログによく貼ってある、
カエレバ、ヨメレバってJavaScriptでできているのですか?
2018/05/22(火) 00:58:13.06ID:???
カエレバ.comそのものがどうやってできている、という意味なら
カエレバは、amazonや楽天などそれぞれのアフィリエイトパーツのルール(やテンプレート)に則った
アフィリエイトリンクを生成するサービス >>589
カエレバ利用者がブラウザからアフィID情報など打ち込んだとき
動的にアフィリンクを生成する処理部分で、少なくともJavaScriptが使われている
(ようはjavascriptを使った穴埋め問題)
あとは各サイトのテンプレートを一旦kaereba.comのサーバーサイドで処理のため
ここではphpが使われてるぽい
仮に、アフィIDによって商品IDそのものもが変わってしまうなら
各サイトへリクエストする必要がある
(ただほとんどのアフィリエイトパーツは穴埋め問題みたいなテンプレだろうが)
穴埋め問題だけなら、フロントエンドだけのjavascriptで実現できるし
極端に言えば個人使用なら文字通りテキストエディタで穴埋め問題すればいいだけ
もしリクエストする必要があるなら
・各サイトのレスポンスがクロスサイトに対応している、ならjavascriptだけで可能
・対応していなければ、phpやNode.jsみたいなサーバーサイドでの処理が必要
・対応しておらずサーバーサイドも嫌なら、ブラウザなどフロントエンドの設定を変える
など、この辺りがポイント
カエレバは、amazonや楽天などそれぞれのアフィリエイトパーツのルール(やテンプレート)に則った
アフィリエイトリンクを生成するサービス >>589
カエレバ利用者がブラウザからアフィID情報など打ち込んだとき
動的にアフィリンクを生成する処理部分で、少なくともJavaScriptが使われている
(ようはjavascriptを使った穴埋め問題)
あとは各サイトのテンプレートを一旦kaereba.comのサーバーサイドで処理のため
ここではphpが使われてるぽい
仮に、アフィIDによって商品IDそのものもが変わってしまうなら
各サイトへリクエストする必要がある
(ただほとんどのアフィリエイトパーツは穴埋め問題みたいなテンプレだろうが)
穴埋め問題だけなら、フロントエンドだけのjavascriptで実現できるし
極端に言えば個人使用なら文字通りテキストエディタで穴埋め問題すればいいだけ
もしリクエストする必要があるなら
・各サイトのレスポンスがクロスサイトに対応している、ならjavascriptだけで可能
・対応していなければ、phpやNode.jsみたいなサーバーサイドでの処理が必要
・対応しておらずサーバーサイドも嫌なら、ブラウザなどフロントエンドの設定を変える
など、この辺りがポイント
2018/05/22(火) 01:28:37.89ID:???
質問ですが、
ブログによく貼ってある、
ビックカメラ、ヨドバシってJavaScriptでできているのですか?
ブログによく貼ってある、
ビックカメラ、ヨドバシってJavaScriptでできているのですか?
2018/05/22(火) 02:24:52.55ID:???
質問ですが頭によく貼ってある
2018/05/22(火) 02:26:11.46ID:???
地毛にきまっとるだろーが
2018/05/22(火) 02:51:33.73ID:???
JigeScript
2018/05/22(火) 04:52:54.78ID:???
Selectionオブジェクトでは
始点をanchor、終点をfocusと呼んでいます
anchor=碇なのは、選択開始部分を「そこに留める」ことからの発想だと思います
そう考えると、必ずしも始点が前、終点が後ろにあるとは限らないってことですよね?
文字選択というものは一般的にそうですし。
一方Rangeオブジェクトでは始点をstart、endと呼んでいます
この場合は始点が前、終点が後ろ(あるいは始点=終点)と保証されているということでしょうか?
始点をanchor、終点をfocusと呼んでいます
anchor=碇なのは、選択開始部分を「そこに留める」ことからの発想だと思います
そう考えると、必ずしも始点が前、終点が後ろにあるとは限らないってことですよね?
文字選択というものは一般的にそうですし。
一方Rangeオブジェクトでは始点をstart、endと呼んでいます
この場合は始点が前、終点が後ろ(あるいは始点=終点)と保証されているということでしょうか?
2018/05/22(火) 05:11:56.81ID:???
>保証されている
少なくとも仕様ではそう。
例えば start を end より後に設定しようとすると end も変更される
少なくとも仕様ではそう。
例えば start を end より後に設定しようとすると end も変更される
2018/05/22(火) 05:20:24.05ID:???
2018/05/22(火) 06:06:14.54ID:???
そもそもLtoRとRtoLが交じってることもある文字列で頭と尾を一般に定義することは出来ない
一応の挙動は決まっていても人間の尺度で保証されていると考えると痛い目にあうぞ
一応の挙動は決まっていても人間の尺度で保証されていると考えると痛い目にあうぞ
2018/05/22(火) 07:11:24.49ID:???
> そもそもLtoRとRtoLが交じってることもある文字列で頭と尾を一般に定義することは出来ない
どちらでも、頭は上で、尾は下だろ。
どちらでも、頭は上で、尾は下だろ。
2018/05/22(火) 07:16:35.64ID:???
RtoLって言っても、要素の前後関係が変わるわけではないのでは?
たとえばrangeの先頭から末尾まで舐める処理は、LtoRだろうがRtoLだろうが同じように動作しますよね
たとえばrangeの先頭から末尾まで舐める処理は、LtoRだろうがRtoLだろうが同じように動作しますよね
2018/05/22(火) 09:08:41.33ID:???
いずれにしても、見た目上は左が前で右が後だけど、ここでいわれる「前」と「後」は 前(previousSibling) と後(nextSibling)?
DOMノードレベルとブラウザに描画されるレベルでは、前後の定義が変わるのでは?
DOMノードレベルとブラウザに描画されるレベルでは、前後の定義が変わるのでは?
2018/05/22(火) 10:44:30.80ID:???
RtoLで2要素跨いでる場合はどういう順番になるんだろう
2018/05/22(火) 13:28:48.90ID:???
>>601
なに言ってるんだ? 先に現れたのが前だろ
なに言ってるんだ? 先に現れたのが前だろ
2018/05/22(火) 13:35:57.83ID:???
先って?
2018/05/22(火) 14:05:37.24ID:???
メモリアドレスの小さい順だが?
2018/05/22(火) 19:04:47.97ID:???
ファイルにしろDOMにしろ本質的にはシーケンシャルなのですよね
2018/05/23(水) 03:23:27.09ID:???
チェーンの数を動的に変更したいのですがどうすればいいでしょうか。
func(){
hoge.a().a().a().a();
}
このa()をfunc(1)のときは1回で実行結果が
hoge.a();
func(2)のときは3回で実行結果が
hoge.a().a().a();
みたいにやりたいのです
func(){
hoge.a().a().a().a();
}
このa()をfunc(1)のときは1回で実行結果が
hoge.a();
func(2)のときは3回で実行結果が
hoge.a().a().a();
みたいにやりたいのです
2018/05/23(水) 03:25:33.12ID:???
もちろん
func(n){
switch(n){}
}
的なのは考えましたが
例えばnが大きくなると大変になりそうなので
func(n){
switch(n){}
}
的なのは考えましたが
例えばnが大きくなると大変になりそうなので
2018/05/23(水) 03:26:21.53ID:???
2018/05/23(水) 03:55:47.58ID:???
再帰でなんとかするほうが良くね
2018/05/23(水) 05:46:05.97ID:???
>>607
単純なループで良い
難しく考える必要はない
func(n){
var o = hoge;
for (var i = 0; i < n; i++) {
o = o.a();
}
return o;
}
単純なループで良い
難しく考える必要はない
func(n){
var o = hoge;
for (var i = 0; i < n; i++) {
o = o.a();
}
return o;
}
2018/05/23(水) 06:41:36.97ID:???
難しく考える必要はない
せっかくJSを使ってるのだからこれでいい
eval( 'o'+'.a()'.repeat(n) )
せっかくJSを使ってるのだからこれでいい
eval( 'o'+'.a()'.repeat(n) )
2018/05/23(水) 07:44:19.05ID:???
難しく考える必要はない
単純にreduceでいい
func(n) {
Array(n).fill().reduce(acc => acc.a(), o);
}
単純にreduceでいい
func(n) {
Array(n).fill().reduce(acc => acc.a(), o);
}
2018/05/23(水) 08:00:17.68ID:???
いろいろ間違えた
function func(n) {
Array(n).fill().reduce(acc => acc.a(), hoge);
}
function func(n) {
Array(n).fill().reduce(acc => acc.a(), hoge);
}
2018/05/23(水) 09:59:42.66ID:???
でもreduceってIE9からしか使えないしな。
fillとか存在の意味が分からんし
そんなに一行で書きたいなら
func(n){
for (var i = 0, o = hoge; i < n; i++) o = o.a()
}
fillとか存在の意味が分からんし
そんなに一行で書きたいなら
func(n){
for (var i = 0, o = hoge; i < n; i++) o = o.a()
}
2018/05/23(水) 10:00:58.23ID:???
func(n){
var o = hoge, while (n--) o = o.a();
}
var o = hoge, while (n--) o = o.a();
}
2018/05/23(水) 10:41:20.18ID:???
そんなこと言ってもIE9なんてもはや気にしてないし。
サポート切れて喜んでたじゃんお前ら。
サポート切れて喜んでたじゃんお前ら。
2018/05/23(水) 10:44:54.81ID:???
fillが嫌ならこんなのでもいいぞ。
function func(n) {
[...'.'.repeat(n)].reduce(acc => acc.a(), hoge);
}
function func(n) {
[...'.'.repeat(n)].reduce(acc => acc.a(), hoge);
}
2018/05/23(水) 11:07:15.87ID:???
またbabelをつかわないといけないようなコードを
2018/05/23(水) 11:54:18.14ID:???
またIE9おじさんか
2018/05/23(水) 13:16:49.98ID:???
hoge.b = function(n){
for(var i = 0; i < n; i++){
this.a();
}
return this;
};
?
for(var i = 0; i < n; i++){
this.a();
}
return this;
};
?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- サナエノミクスについて力説 積極的な財政出動で「所得増える 消費マインド上がる 税収増える」片山さつき財務大臣 ★3 [少考さん★]
- 中国軍機のレーダー照射1週間 駆け引き続く 中国、米のレッドライン模索 日本、米以外の同志国とも連携探る 米は対立から距離置く★2 [ぐれ★]
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 ★4 [Hitzeschleier★]
- 【芸能】粗品、日本テレビに苦言 客のレベルが「かなり低い。あいつら分かってない」「拍手したいだけやねん」 [冬月記者★]
- 橋下徹氏「総理なら岡田さんに何を聴かれても耐えてほしかった」 高市首相の台湾有事めぐる答弁に# [jinjin★]
- 「ヒートテックに寿命があります」ユニクロが明かした“3年劣化”の理由 暖かさが落ちる意外な原因とは [ぐれ★]
- 全国フェミニスト議員連盟「草津の対応は、性被害の告発を否定する人権侵害。姿勢は変わらない。女性議員を増やしこれからも精進する」 [932029429]
- お前らもちろんマモンキングやってるよな?
- 助けて!!地元でテレビ番組の超絶美人のアナウンサーさんが退社した。゚(゚´Д`゚)゚。
- 魅音が詩音で詩音が魅音
- (´・ω・`)VIPにおける現在確認している不具合について
- コイツら殺すか?
