JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950が>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
※前スレ
+ JavaScript の質問用スレッド vol.122 +
http://echo.2ch.net/test/read.cgi/tech/1472426483/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured
+ JavaScript の質問用スレッド vol.123 + [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ efff-U/Pn [183.76.238.232])
2017/04/02(日) 23:30:38.56ID:Qcd0Qmy10234デフォルトの名無しさん (ワッチョイ 129f-Vijk [133.203.132.132])
2020/05/08(金) 08:57:30.14ID:dckQgcH50 もう一個のスレはガイジがレスバトルしてて答えは返ってこないしこのスレは自治ガイジが暴れてるしこんなとこで質問しない方がいいが
235デフォルトの名無しさん (ワッチョイ d361-INBt [218.231.250.166])
2020/06/03(水) 19:07:48.44ID:jt2kVIBa0 javascriptで、1秒毎にGPSの位置情報を表示したいのですが、毎回、アクセス権確認が出てしまいます。
アクセス許可の確認ボックスが表示されるのを、最初の一回だけに出来ないでしょうか?
var timer;
timer = setInterval(test,1000);
function test() {
navigator.geolocation.getCurrentPosition(test2);
}
function test2(position) {
var geo_text = "緯度:" + position.coords.latitude + "\n";
geo_text += "経度:" + position.coords.longitude + "\n";
var date = new Date(position.timestamp);
geo_text += "取得時刻:" + date.toLocaleString() + "\n";
var a = document.getElementById("AAA");
a.innerHTML = geo_text;
}
アクセス許可の確認ボックスが表示されるのを、最初の一回だけに出来ないでしょうか?
var timer;
timer = setInterval(test,1000);
function test() {
navigator.geolocation.getCurrentPosition(test2);
}
function test2(position) {
var geo_text = "緯度:" + position.coords.latitude + "\n";
geo_text += "経度:" + position.coords.longitude + "\n";
var date = new Date(position.timestamp);
geo_text += "取得時刻:" + date.toLocaleString() + "\n";
var a = document.getElementById("AAA");
a.innerHTML = geo_text;
}
236235 (ワッチョイ d361-INBt [218.231.250.166])
2020/06/03(水) 19:40:21.72ID:jt2kVIBa0 watchPositionで
自己解決しました
が
バックグラウンド等々でも動作を継続させるのはどうしたら良いのでしょうか?
自己解決しました
が
バックグラウンド等々でも動作を継続させるのはどうしたら良いのでしょうか?
237デフォルトの名無しさん (スプッッ Sd1f-Zi0f [1.75.211.253])
2020/06/10(水) 03:27:21.19ID:nXyeYMB9d 正規表現の質問です
2020/6/10
2020-6-10
2020.6.10
これをstringオブジェクトのsplitメソッドを使い日付の区切り部分で、"/"、"-"、"."のいずれの文字でも分割できるように
var reg=/\/|\-|\./gi;
console.log(2020/6/10.split(reg));
として
length(3) ["2020” , “6” , “20”]
期待通りの結果が出たのですが
var reg=/\/|\-|\./gi;←この部分を
var reg=/(\/|\-|\.)/gi;このようにグループ化したところ
length(5) ["2020” , “/” , “6” , “/“ , “20”]
上と違う結果になってしまったのですが、どういう理屈でこういう結果になったのか教えてくださいm(__)m
正規表現の
a|b|cはaかbかcのいずれかで、[a-c]これと同じ意味ですよね?
2020/6/10
2020-6-10
2020.6.10
これをstringオブジェクトのsplitメソッドを使い日付の区切り部分で、"/"、"-"、"."のいずれの文字でも分割できるように
var reg=/\/|\-|\./gi;
console.log(2020/6/10.split(reg));
として
length(3) ["2020” , “6” , “20”]
期待通りの結果が出たのですが
var reg=/\/|\-|\./gi;←この部分を
var reg=/(\/|\-|\.)/gi;このようにグループ化したところ
length(5) ["2020” , “/” , “6” , “/“ , “20”]
上と違う結果になってしまったのですが、どういう理屈でこういう結果になったのか教えてくださいm(__)m
正規表現の
a|b|cはaかbかcのいずれかで、[a-c]これと同じ意味ですよね?
238デフォルトの名無しさん (ワッチョイ cf61-q7/F [153.210.210.173])
2020/06/10(水) 04:08:41.09ID:+QBvSnI00 >>237
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/split
separator が、キャプチャする括弧を含む正規表現だった場合、 separator が一致するごとに、キャプチャする括弧の結果が (未定義の結果であった場合を含め) 出力配列に追加されます。
グループ化だけしたいなら(?:〜〜)で囲め
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/split
separator が、キャプチャする括弧を含む正規表現だった場合、 separator が一致するごとに、キャプチャする括弧の結果が (未定義の結果であった場合を含め) 出力配列に追加されます。
グループ化だけしたいなら(?:〜〜)で囲め
239デフォルトの名無しさん (スプッッ Sd1f-Zi0f [1.75.211.253])
2020/06/10(水) 05:49:33.23ID:nXyeYMB9d >>238
ありがとうございます。
括弧を含んだ正規表現の場合〜と解説してる文献があるんですね^_^;
こういうの自分で探せないわ…
何故そうなるのかはほとんど正規表現の知識がないので分かりませんが、とりあえず括弧で括った場合にはそういう挙動になるということは分かりました。
ありがとうございます
ありがとうございます。
括弧を含んだ正規表現の場合〜と解説してる文献があるんですね^_^;
こういうの自分で探せないわ…
何故そうなるのかはほとんど正規表現の知識がないので分かりませんが、とりあえず括弧で括った場合にはそういう挙動になるということは分かりました。
ありがとうございます
240デフォルトの名無しさん (ワッチョイ 6fc7-Z00E [111.216.204.69])
2020/06/15(月) 20:45:26.99ID:1F3a2yyn0 https://github.com/mdn/webextensions-examples/tree/master/borderify
githubでダウンロードするにはどうしたらいいんでしょうか
ダウンロードボタンがないです
githubでダウンロードするにはどうしたらいいんでしょうか
ダウンロードボタンがないです
241デフォルトの名無しさん (JP 0Hdf-OVFq [103.140.113.232])
2020/06/15(月) 21:10:05.21ID:JS6xK7rfH マルチポストはやめましょう
242デフォルトの名無しさん (ワッチョイ 6fc7-Z00E [111.216.204.69])
2020/06/15(月) 21:13:50.22ID:1F3a2yyn0 スレを間違えただけです
243デフォルトの名無しさん (ワッチョイ c301-jzfI [126.140.244.65])
2020/06/15(月) 21:41:15.07ID:7MR1R7860 >>242
指摘されるまで質問を撤回しなかった理由は?
指摘されるまで質問を撤回しなかった理由は?
244デフォルトの名無しさん (ワッチョイ ff2c-aH+M [221.190.7.123])
2020/06/15(月) 23:53:35.57ID:6c4s/wK/0 JavaScript の質問は、web制作管理板の方へ書き込んでください!
この板のスレは、荒らしが出た時に、緊急避難用として立てられたもので、現在は使われていない!
この板のスレは、荒らしが出た時に、緊急避難用として立てられたもので、現在は使われていない!
245デフォルトの名無しさん (ラクッペペ MM96-+D7B [133.106.90.78])
2020/07/05(日) 23:47:37.29ID:S84HRZFZM javascript初心者で右も左もよくわからないんだけどconsole.log();ってみなさんchromeなら検証からやって
246デフォルトの名無しさん (ワッチョイ 0101-INtO [126.140.245.39])
2020/07/06(月) 05:50:27.12ID:JmzGvw7e0247デフォルトの名無しさん (ワッチョイ a56a-+D7B [42.125.49.111])
2020/07/06(月) 14:11:59.36ID:YRhjpfSA0 >>246
やっていますか? でした
やっていますか? でした
248デフォルトの名無しさん (オッペケ Srf9-INtO [126.255.161.232])
2020/07/06(月) 14:50:26.97ID:L/pk2yTgr >>247
それでも、エスパー案件
「右クリックメニューの[検証]からコンソールパネルを開いてますか?」
と質問してるのか?
---
ショートカットキーを覚えろ
https://developers.google.com/web/tools/chrome-devtools/shortcuts
そして、正しい日本語で質問することも覚えろ
それでも、エスパー案件
「右クリックメニューの[検証]からコンソールパネルを開いてますか?」
と質問してるのか?
---
ショートカットキーを覚えろ
https://developers.google.com/web/tools/chrome-devtools/shortcuts
そして、正しい日本語で質問することも覚えろ
249デフォルトの名無しさん (ラクッペペ MM96-+D7B [133.106.82.76])
2020/07/06(月) 15:11:39.18ID:AsDEr6ShM250デフォルトの名無しさん (ワッチョイ 0101-INtO [126.140.244.253])
2020/07/06(月) 20:10:50.63ID:FMGmKD1v0 >>249
PCの基本が載ってる本を買って勉強した方がいい
PCの基本が載ってる本を買って勉強した方がいい
251デフォルトの名無しさん (アウアウエー Sada-h0J+ [111.239.210.205])
2020/07/07(火) 00:22:17.39ID:wqab1oePa すみません、自作JavaScriptをブラウザで見ようとしてブラウザが反応しなくなった時に
止める方法はありますですか?
ctl+alt+del押してタスクマネージャーから落とす以外に無いかですか?
止める方法はありますですか?
ctl+alt+del押してタスクマネージャーから落とす以外に無いかですか?
252デフォルトの名無しさん (ワッチョイ 8d4e-yZ94 [210.138.216.243])
2020/07/07(火) 04:38:45.11ID:7NRV/JzE0 いくらでもあるのでは?
ハンマーでPCごと叩き壊すとか
ハンマーでPCごと叩き壊すとか
253デフォルトの名無しさん (オッペケ Srf9-INtO [126.255.161.232])
2020/07/07(火) 08:04:49.16ID:ZqIgROior >>251
Chrome駕止めるか聞いてきたら、止める
Chrome駕止めるか聞いてきたら、止める
254デフォルトの名無しさん (ワッチョイ fb5f-w4il [106.72.170.129])
2020/08/13(木) 21:43:17.29ID:cLv1fX6M0 こういう配列があったとして
const hoge = [
{name: "taro", age: 15, group: "A"},
{name: "hanako", age: 25, group: "B"},
]
最終的にこんな感じにしたい(ageだけ2倍に)
const hoge = [
{name: "taro", age: 30, group: "A"},
{name: "hanako", age: 50, group: "B"},
]
mapを使えばいいと思ったんですが、書き方が分かりませんでした…
(元のオブジェクトを展開して、ageだけ2倍するみたいなことが出来ると思った)
const newHoge = hoge.map(h => {...h, age: h.age * 2})
const hoge = [
{name: "taro", age: 15, group: "A"},
{name: "hanako", age: 25, group: "B"},
]
最終的にこんな感じにしたい(ageだけ2倍に)
const hoge = [
{name: "taro", age: 30, group: "A"},
{name: "hanako", age: 50, group: "B"},
]
mapを使えばいいと思ったんですが、書き方が分かりませんでした…
(元のオブジェクトを展開して、ageだけ2倍するみたいなことが出来ると思った)
const newHoge = hoge.map(h => {...h, age: h.age * 2})
255デフォルトの名無しさん (ワントンキン MMbf-it5q [153.250.62.60])
2020/08/13(木) 21:55:53.88ID:PyxE/Q5zM256デフォルトの名無しさん (ワッチョイ fb5f-w4il [106.72.170.129])
2020/08/13(木) 21:59:50.51ID:cLv1fX6M0257デフォルトの名無しさん (ワッチョイ 9f01-s47K [219.210.104.4])
2020/08/17(月) 12:12:35.63ID:Ew8mgsp/0 てs
258デフォルトの名無しさん (スッップ Sdbf-w4il [49.98.146.19])
2020/08/18(火) 19:36:32.49ID:65jirDTbd これを
const hoge = "【aaa】bbb【ccc】【ddddd】eee【fff】gggg";
最終的にこういう配列にしたいんですが
const newHoge = hogeFunc(hoge);
console.log(newHoge)
["【aaa】",
"bbb",
"【ccc】",
"【ddddd】",
"eee",
"【fff】"]
indexOfで【】の位置特定して、sliceして、みたいなごり押し以外で何かスマートに処理する方法あるでしょうか?
lodash的な便利ライブラリを使用する方法とかでも構わないので知りたいです
const hoge = "【aaa】bbb【ccc】【ddddd】eee【fff】gggg";
最終的にこういう配列にしたいんですが
const newHoge = hogeFunc(hoge);
console.log(newHoge)
["【aaa】",
"bbb",
"【ccc】",
"【ddddd】",
"eee",
"【fff】"]
indexOfで【】の位置特定して、sliceして、みたいなごり押し以外で何かスマートに処理する方法あるでしょうか?
lodash的な便利ライブラリを使用する方法とかでも構わないので知りたいです
259デフォルトの名無しさん (ワッチョイ 0bda-VfcI [153.144.243.166])
2020/08/19(水) 03:50:29.18ID:5OSwc30i0 >>258
hoge.split(/(【[^】]*】)/).filter(Boolean)
hoge.split(/(【[^】]*】)/).filter(Boolean)
260デフォルトの名無しさん (ワッチョイ 0bda-VfcI [153.144.243.166])
2020/08/19(水) 03:58:30.68ID:5OSwc30i0 ggggが要らなければ要素数が3の倍数になるように配列を切り詰めて
261デフォルトの名無しさん (オッペケ Srb1-P3ox [126.179.253.120])
2020/08/19(水) 08:10:31.51ID:VKqi5gMNr >>258
hoge.match(/【[^】]*】|[^【】]+/)
hoge.match(/【[^】]*】|[^【】]+/)
262261 (オッペケ Srb1-P3ox [126.179.253.120])
2020/08/19(水) 08:16:32.46ID:VKqi5gMNr >>258
hoge.match(/【[^】]*】|[^【】]+/g); // gフラグ付け漏れ修正
hoge.match(/【[^】]*】|[^【】]+/g); // gフラグ付け漏れ修正
263デフォルトの名無しさん (ワッチョイ dd5f-N59K [106.72.170.129])
2020/08/20(木) 11:15:49.95ID:N3Xth98n0264デフォルトの名無しさん (ワッチョイ d92d-C4/F [220.100.20.82])
2020/09/14(月) 13:19:22.86ID:tp+/+C8Z0 この方法だとSJISの機種依存文字(崎の大じゃなくて立の文字)が文字化けしないんですが
reader.readAsText(file, "shift-jis");
ここのサンプル通りに
http://polygonplanet.github.io/encoding.js/tests/detect-file-encoding.html
reader.readAsArrayBuffer(file);
var unicodeString = Encoding.convert(codes, {to: 'unicode', from: 'SJIS',type: 'string'});
としても機種依存文字が化けてしまいます
そういうもんでしょうか?
reader.readAsText(file, "shift-jis");
ここのサンプル通りに
http://polygonplanet.github.io/encoding.js/tests/detect-file-encoding.html
reader.readAsArrayBuffer(file);
var unicodeString = Encoding.convert(codes, {to: 'unicode', from: 'SJIS',type: 'string'});
としても機種依存文字が化けてしまいます
そういうもんでしょうか?
265デフォルトの名無しさん (ワッチョイ 8b61-pVuC [153.160.139.47])
2020/09/14(月) 15:14:02.04ID:zNKtsudb0 Encoding.jsはブラウザが持ってる変換ではなく自前の変換テーブル使ってやってるのでそういうもんなんだろうけど
IBMのFAB1はUNKNOWN、NECのED95からは変換できるので必要ならgithubで要望出してみれば?
IBMのFAB1はUNKNOWN、NECのED95からは変換できるので必要ならgithubで要望出してみれば?
266デフォルトの名無しさん (ワッチョイ d92d-C4/F [220.100.20.82])
2020/09/14(月) 16:05:43.73ID:tp+/+C8Z0267デフォルトの名無しさん (オッペケ Sr61-lMKa [126.212.166.165])
2020/09/17(木) 20:09:46.76ID:QWldExKKr 下記のコードでクリックした要素のidを取得したいのですが、取得できません。
$("li").on('click', function(e){
let k = $(this).attr('id');
});
取得する要素はjavascriptで動的にデータベースから値をとってきて表示しているのですが、
ページリロードした際にある要素しか上記のコードは有効でない、など、何か動かない条件などがあるのでしょうか。
よろしくお願いいたします。
$("li").on('click', function(e){
let k = $(this).attr('id');
});
取得する要素はjavascriptで動的にデータベースから値をとってきて表示しているのですが、
ページリロードした際にある要素しか上記のコードは有効でない、など、何か動かない条件などがあるのでしょうか。
よろしくお願いいたします。
268デフォルトの名無しさん (オッペケ Sr61-B1ce [126.255.42.181])
2020/09/17(木) 20:20:53.83ID:fy5bwxWur 取得できないとは具体的にどういう状況を指すのか説明orコードが足らん
あとletで宣言したら外で使えないけどそれで良いの?
あとletで宣言したら外で使えないけどそれで良いの?
269デフォルトの名無しさん (ワッチョイ 7d2c-qc2B [114.144.98.145])
2020/09/17(木) 20:27:23.84ID:NHfa1bvj0 li が1つだけなら、取得できた。
2つ以上あったら、知らないけど
<ul>
<li id="abc">リスト 1</li>
</ul>
$( "li" ).on( 'click', function( e ) {
let k = $( this ).attr( 'id' );
console.log( k )
} );
Javascript, jQuery の質問は、web制作管理板の方へ書き込んでください!
この板のスレは、荒らしが出たときに、一時的に使っていたものなので
2つ以上あったら、知らないけど
<ul>
<li id="abc">リスト 1</li>
</ul>
$( "li" ).on( 'click', function( e ) {
let k = $( this ).attr( 'id' );
console.log( k )
} );
Javascript, jQuery の質問は、web制作管理板の方へ書き込んでください!
この板のスレは、荒らしが出たときに、一時的に使っていたものなので
270269 (ワッチョイ 7d2c-qc2B [114.144.98.145])
2020/09/17(木) 20:30:39.20ID:NHfa1bvj0 li が2つ以上あっても、クリックしたものが取得された
正常に動く
正常に動く
271デフォルトの名無しさん (ワッチョイ cbda-UtS8 [153.144.243.166])
2020/09/17(木) 20:36:46.60ID:gD3Eguk90 動的に追加された要素に対して適用できてないとかそんなオチだろ
272デフォルトの名無しさん (JP 0H93-+fJl [103.90.19.193])
2020/09/18(金) 09:35:45.84ID:WV/PPbI+H 取得できそうなもんだけどなぁ
エスパー過ぎてわからん
エスパー過ぎてわからん
273デフォルトの名無しさん (ワッチョイ b3f1-Kk5w [180.221.240.118])
2020/10/01(木) 18:40:48.93ID:3EMbehP20 enchant.jsでゲームを作り
自分のレンタルwebサーバにUPしたら
ブラウザで「NET::ERR_CERT_AUTHORITY_INVALID」のエラーが出て
他の誰にもゲームを見てもらえません。
なにがどうなっているのでしょうか?
自分のレンタルwebサーバにUPしたら
ブラウザで「NET::ERR_CERT_AUTHORITY_INVALID」のエラーが出て
他の誰にもゲームを見てもらえません。
なにがどうなっているのでしょうか?
274デフォルトの名無しさん (オッペケ Sr77-N6vg [126.204.169.179])
2020/10/01(木) 18:58:58.89ID:by80Zctlr 明らかにサーバー(SSL証明書エラー)の問題
此処で情報を詳しく出しても良いけど
当該レンサバのスレで質問する方が近道だと思う
此処で情報を詳しく出しても良いけど
当該レンサバのスレで質問する方が近道だと思う
275デフォルトの名無しさん (ワッチョイ b3f1-buUt [180.221.240.118])
2020/10/01(木) 19:08:37.71ID:3EMbehP20 >>274
XSERVERでございます
XSERVERでございます
276デフォルトの名無しさん (ワッチョイ b3f1-buUt [180.221.240.118])
2020/10/01(木) 19:09:26.51ID:3EMbehP20 SSLとか証明書とか意味がさっぱりわからないのですが
なにがどうなっているのでしょうか?
なにがどうなっているのでしょうか?
277デフォルトの名無しさん (ワンミングク MMdf-bdbF [153.250.208.212])
2020/10/01(木) 19:12:56.72ID:fSnOANSlM Cloudflareでも通しとけ
278デフォルトの名無しさん (ワッチョイ b3f1-buUt [180.221.240.118])
2020/10/01(木) 19:21:47.87ID:3EMbehP20 Cloudflareとは何じゃ
良い子はそんなの使ってません。
良い子はそんなの使ってません。
279デフォルトの名無しさん (オッペケ Sr77-N6vg [126.204.169.179])
2020/10/01(木) 20:39:45.05ID:by80Zctlr >>276
SSLが分かんないのにURLがhttpsになってたら設定見直せとしか
「独自SSL」とかその辺見たらいいんじゃない
いずれにせよJS関係無いので向こうで聞いてみたら
XSERVER エックスサーバー Part6
https://mevius.5ch.net/test/read.cgi/hosting/1568069691/
SSLが分かんないのにURLがhttpsになってたら設定見直せとしか
「独自SSL」とかその辺見たらいいんじゃない
いずれにせよJS関係無いので向こうで聞いてみたら
XSERVER エックスサーバー Part6
https://mevius.5ch.net/test/read.cgi/hosting/1568069691/
280デフォルトの名無しさん (ワッチョイ 832c-G8Sl [114.144.98.145])
2020/10/01(木) 22:31:33.76ID:theiHz1p0 AWS のS3 とか、知らんのか?w
HTTPS, SSL の証明書とか、システム構築運用の初歩の初歩だがw
無料の証明書、let's encrypt とか
HTTPS, SSL の証明書とか、システム構築運用の初歩の初歩だがw
無料の証明書、let's encrypt とか
281デフォルトの名無しさん (ワッチョイ cfb0-2+Dn [153.164.85.235])
2020/10/03(土) 14:18:04.93ID:l4QjehZB0 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14232251614?sort=1&page=2
abiko tetuってやつヤバすぎ
abiko tetuってやつヤバすぎ
282デフォルトの名無しさん (ワッチョイ ff7b-yH5j [153.198.55.63])
2020/10/14(水) 10:58:53.79ID:asjsDRkW0 sort関数に追加の引数を渡すことってできますか?
array.sort(mySort())に引数を与えて条件によって処理を変えたいのですが。
普通にmySort()に引数を入れるとソートで使われる引数に値が入ってしまってダメでした。
array.sort(mySort())に引数を与えて条件によって処理を変えたいのですが。
普通にmySort()に引数を入れるとソートで使われる引数に値が入ってしまってダメでした。
283デフォルトの名無しさん (ワッチョイ b78b-VUc9 [210.228.102.1])
2020/10/14(水) 11:29:33.74ID:B+LQat5m0 function mySort(value) {
if(value===1) {
return (a, b) => a-b
} else if (value===2) {
return (a, b) => b-a
}
}
array.sort(mySort(1)) // 昇順
array.sort(mySort(2)) // 降順
if(value===1) {
return (a, b) => a-b
} else if (value===2) {
return (a, b) => b-a
}
}
array.sort(mySort(1)) // 昇順
array.sort(mySort(2)) // 降順
284282 (ワッチョイ ff7b-yH5j [153.198.55.63])
2020/10/14(水) 11:48:53.44ID:asjsDRkW0 ありがとうございます。
新しいjsでは大丈夫でしたが、ES3という超古いバージョンなのです。
書き忘れていました。後出しで申し訳ありません。
(アドビのソフトで使われているjsです)
新しいjsでは大丈夫でしたが、ES3という超古いバージョンなのです。
書き忘れていました。後出しで申し訳ありません。
(アドビのソフトで使われているjsです)
285デフォルトの名無しさん (オッペケ Srcb-Qzhr [126.179.243.62])
2020/10/14(水) 12:41:33.59ID:p6YQijR2r >>284
bindみたいな引数束縛する関数を作る
bindみたいな引数束縛する関数を作る
286デフォルトの名無しさん (オッペケ Srcb-Qzhr [126.179.243.62])
2020/10/14(水) 12:44:22.07ID:p6YQijR2r287282 (ワッチョイ ff7b-yH5j [153.198.55.63])
2020/10/14(水) 13:05:25.23ID:asjsDRkW0 >>285
ちょっと自分のスキルでは難しそうです。
ちょっと自分のスキルでは難しそうです。
288デフォルトの名無しさん (ワッチョイ b72c-F9zC [114.144.98.145])
2020/10/14(水) 13:40:46.13ID:z5Uy/Vd30 Function.prototype.bind()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
bind this か?
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
bind this か?
289デフォルトの名無しさん (オッペケ Srcb-D9NN [126.208.250.170])
2020/10/14(水) 13:53:20.67ID:z5/Y8RhDr ソート関数なんて自前で作ればいい
290デフォルトの名無しさん (ワッチョイ ff61-fMdf [153.160.139.47])
2020/10/14(水) 13:58:43.04ID:bGR5EKGW0 ES3だと
return (a, b) => a-b
↓
return function(a, b) { return a - b; };
じゃね?
だいたいsortと比較関数でクロージャにしちゃって引数でなくローカル変数でやっちゃうよね
return (a, b) => a-b
↓
return function(a, b) { return a - b; };
じゃね?
だいたいsortと比較関数でクロージャにしちゃって引数でなくローカル変数でやっちゃうよね
291282 (ワッチョイ ff7b-yH5j [153.198.55.63])
2020/10/14(水) 14:10:27.29ID:asjsDRkW0 returnの挙動はともかく、
mySort(value)自体がES3だとできないのです。(aにvalueが入ってしまう)
とりあえず今はグローバル変数で対応していますが、
引数でやる方法がないのかと思いまして。
mySort(value)自体がES3だとできないのです。(aにvalueが入ってしまう)
とりあえず今はグローバル変数で対応していますが、
引数でやる方法がないのかと思いまして。
292デフォルトの名無しさん (ワッチョイ 97d2-f5T3 [124.103.45.183])
2020/10/14(水) 16:00:56.30ID:zqMcknRo0 比較関数はどうやって指定しているんですか?
293デフォルトの名無しさん (ブーイモ MMcf-geX2 [163.49.200.143])
2020/10/14(水) 17:00:41.74ID:Tfis7AoIM294282 (ワッチョイ ff7b-yH5j [153.198.55.63])
2020/10/14(水) 17:08:39.53ID:asjsDRkW0 >>293
今やってることは大雑把には以下の通りで、
mySortにa,b以外の値cを渡してそれを元に処理を追加したいのですが
cの渡し方がわかりません。
var ary=[10,12,53,41,5,6,];
ary.sort(mySort);
function mySort(a,b){
return a-b;
}
今やってることは大雑把には以下の通りで、
mySortにa,b以外の値cを渡してそれを元に処理を追加したいのですが
cの渡し方がわかりません。
var ary=[10,12,53,41,5,6,];
ary.sort(mySort);
function mySort(a,b){
return a-b;
}
295デフォルトの名無しさん (ワッチョイ b74e-T8Cx [210.138.216.243])
2020/10/14(水) 17:20:07.02ID:Azmo5ss/0 var ary=[10,12,53,41,5,6,];
ary.sort(mySort(-1));
function mySort(c){
return function(a,b){
return c<0 ? a-b : b-a;
};
}
ary.sort(mySort(-1));
function mySort(c){
return function(a,b){
return c<0 ? a-b : b-a;
};
}
296282 (ワッチョイ ff7b-yH5j [153.198.55.63])
2020/10/14(水) 17:28:28.99ID:asjsDRkW0 ありがとうございます。まさに希望どおりです。
こんな書き方もできるんですね。
こんな書き方もできるんですね。
297デフォルトの名無しさん (ワッチョイ b74e-T8Cx [210.138.216.243])
2020/10/14(水) 18:41:11.04ID:Azmo5ss/0 高階関数やクロージャについて調べてみると理解進むよ。
ちなみに今でも全然通用する概念。
ちなみに今でも全然通用する概念。
298デフォルトの名無しさん (アウアウクー MM49-1tAR [36.11.229.191])
2020/10/24(土) 02:35:59.30ID:gS1xqNx8M 質問させてください。
nodejsで line botを作っていて応答文字に改行を入れたいのですが
ダブルクォートで囲った中に”\n”で改行するという仕様のようなのです。
例
return client.replyMessage(ev.replyToken, {
type: "text",
text: “あああ\nいいい”
});
しかし今作っているbotは文字列を変数に格納しており
const aaa = スクレイピングで拾ってきた文字列
const bbb = スクレイピングで拾ってきた文字列
const ccc = aaa + “\n” + bob
return client.replyMessage(ev.replyToken, {
type: "text",
text: ccc
});
では改行されませんでした。
text: `${ccc}` でもダメでした。
\nがそのまま表示されてしまいます。
ダブルクオートで囲い直す方法ってございませんでしょうか?
よろしくお願い致します。
nodejsで line botを作っていて応答文字に改行を入れたいのですが
ダブルクォートで囲った中に”\n”で改行するという仕様のようなのです。
例
return client.replyMessage(ev.replyToken, {
type: "text",
text: “あああ\nいいい”
});
しかし今作っているbotは文字列を変数に格納しており
const aaa = スクレイピングで拾ってきた文字列
const bbb = スクレイピングで拾ってきた文字列
const ccc = aaa + “\n” + bob
return client.replyMessage(ev.replyToken, {
type: "text",
text: ccc
});
では改行されませんでした。
text: `${ccc}` でもダメでした。
\nがそのまま表示されてしまいます。
ダブルクオートで囲い直す方法ってございませんでしょうか?
よろしくお願い致します。
299デフォルトの名無しさん (ブーイモ MMd1-Gto1 [202.214.230.69])
2020/10/24(土) 11:37:48.17ID:4WVjWXseM >>298
wrap: true
wrap: true
300デフォルトの名無しさん (アウアウクー MM49-1tAR [36.11.229.191])
2020/10/24(土) 12:36:00.80ID:gS1xqNx8M301デフォルトの名無しさん (アウアウクー MM49-1tAR [36.11.229.191])
2020/10/24(土) 13:25:10.82ID:gS1xqNx8M すみません。自己解決しました。
\ではなくバックスラッシュでした。
ありがとうございました。
\ではなくバックスラッシュでした。
ありがとうございました。
302デフォルトの名無しさん (ブーイモ MM8b-gqeA [163.49.205.254])
2020/10/24(土) 21:42:06.09ID:6VJCwZcaM そもそも文字列はシングルクオートで囲う癖つけとくと便利だと思う
テンプレート文字列にするのもいいけど
テンプレート文字列にするのもいいけど
303デフォルトの名無しさん (アウアウエー Sa7f-U5Vn [111.239.187.220])
2020/11/08(日) 22:08:22.01ID:EfB5Dlnya requirejsやってるんだけどシェルのexportコマンド的なの無いの?
304デフォルトの名無しさん
2020/11/24(火) 13:11:50.94ID:FWk6XcjL function hoge(){} //引数なし
hoge(a=11,b=33)
名前付き引数を可変的に追加できて
関数hoge側でkey(aとb)名も受け取れるようにしたいんだけど無理?
argumentsはkey名は無視されたし
hoge({a=1,b=3})で関数内でfor key in objみたいにするしかないのかな
hoge(a=11,b=33)
名前付き引数を可変的に追加できて
関数hoge側でkey(aとb)名も受け取れるようにしたいんだけど無理?
argumentsはkey名は無視されたし
hoge({a=1,b=3})で関数内でfor key in objみたいにするしかないのかな
305デフォルトの名無しさん (ワントンキン MM8a-SQf5 [153.250.6.142])
2020/11/24(火) 14:02:04.95ID:cyXA9vgjM function foo(a, b, ...rest)
306デフォルトの名無しさん
2020/11/25(水) 01:19:47.68ID:UPK+j49C >>305
無理でした
無理でした
307デフォルトの名無しさん (ワッチョイ 194e-nRkK [210.138.216.243])
2020/11/25(水) 16:04:16.70ID:zD7zhP2P0 いまいち何がしたいのかよくわかんないけど
function hoge(o = {}){
console.log(Object.keys(o))
}
hoge({a: 1, b: 3})
//=> ["a", "b"]
function hoge(o = {}){
console.log(Object.keys(o))
}
hoge({a: 1, b: 3})
//=> ["a", "b"]
308デフォルトの名無しさん
2020/11/25(水) 16:45:55.85ID:UPK+j49C >>307
端的にいうと
引数は
hoge(x=1,y=2,a="ho",b="ge")
hoge(z=2,x="abc")
みたいに指定できて
{x:1,y:2,a:"ho",b:"ge"}や{z:2,x:"abc"}
みたいに関数で受け取りたい
(もちろんx,yやa,b,cみたいなkey名はこれに限らず)
端的にいうと
引数は
hoge(x=1,y=2,a="ho",b="ge")
hoge(z=2,x="abc")
みたいに指定できて
{x:1,y:2,a:"ho",b:"ge"}や{z:2,x:"abc"}
みたいに関数で受け取りたい
(もちろんx,yやa,b,cみたいなkey名はこれに限らず)
309デフォルトの名無しさん (ワッチョイ ebda-flI+ [153.144.243.166])
2020/11/25(水) 17:12:47.42ID:ulXBn3sm0 JSにそういう記法はないので無理
Pythonを使え
Pythonを使え
310デフォルトの名無しさん (ワッチョイ 194e-nRkK [210.138.216.243])
2020/11/25(水) 17:15:26.00ID:zD7zhP2P0 えっ…じゃあこうだけど??
function hoge(o = {}){
console.log(o)
}
hoge({x: 1, y: 2, a: "ho", b: "ge"})
//=> {x: 1, y: 2, a: "ho", b: "ge"}
function hoge(o = {}){
console.log(o)
}
hoge({x: 1, y: 2, a: "ho", b: "ge"})
//=> {x: 1, y: 2, a: "ho", b: "ge"}
311デフォルトの名無しさん
2020/11/25(水) 17:52:06.24ID:UPK+j49C312デフォルトの名無しさん (ワッチョイ 194e-U2xp [210.138.216.243])
2020/11/25(水) 19:21:16.56ID:zD7zhP2P0 >>311
あーそうゆうことね。
()呼び出しでなくタグ付きテンプレート呼び出し、
eval使っていいなら、
function hoge(s) {
let o={},p=new Proxy(o,{set:(o,p,v)=>(o[p]=v,!0),has:()=>!0});
eval(`with(p){${s[0]}}`)
console.log(o);
}
hoge`x=1,y=2,a="ho",b="ge"`
//=> {x: 1, y: 2, a: "ho", b: "ge"}
あーそうゆうことね。
()呼び出しでなくタグ付きテンプレート呼び出し、
eval使っていいなら、
function hoge(s) {
let o={},p=new Proxy(o,{set:(o,p,v)=>(o[p]=v,!0),has:()=>!0});
eval(`with(p){${s[0]}}`)
console.log(o);
}
hoge`x=1,y=2,a="ho",b="ge"`
//=> {x: 1, y: 2, a: "ho", b: "ge"}
313デフォルトの名無しさん (ワッチョイ 194e-U2xp [210.138.216.243])
2020/11/25(水) 19:29:03.94ID:zD7zhP2P0 hoge`
x = 1,
y = 2,
a = "ho",
b = "ge",
z = x + y,
c = a + b
`
//=> {x: 1, y: 2, a: "ho", b: "ge", z: 3, c: "hoge"}
x = 1,
y = 2,
a = "ho",
b = "ge",
z = x + y,
c = a + b
`
//=> {x: 1, y: 2, a: "ho", b: "ge", z: 3, c: "hoge"}
314デフォルトの名無しさん
2020/11/25(水) 19:36:00.93ID:UPK+j49C315デフォルトの名無しさん (ワッチョイ 33bd-W+Es [133.200.2.96])
2020/11/25(水) 21:38:45.31ID:3CNxpkun0 const hoge = [{id:"xxx",
num:5000},
{id:"yyy",
num:2000},
{id:"zzz",
num:9000},]
こういう配列でnumが一番大きいobjectを取得するシンプルな方法ってありますか?
思いついたのは
const foo = hoge.find((i)=>{
return i.num === Math.max(...hoge.map((v) =>{
return v.num
}))
})
なんですけどこれだけの処理に二重でループ回すのはナンセンスな気がしてしまって・・・
num:5000},
{id:"yyy",
num:2000},
{id:"zzz",
num:9000},]
こういう配列でnumが一番大きいobjectを取得するシンプルな方法ってありますか?
思いついたのは
const foo = hoge.find((i)=>{
return i.num === Math.max(...hoge.map((v) =>{
return v.num
}))
})
なんですけどこれだけの処理に二重でループ回すのはナンセンスな気がしてしまって・・・
316デフォルトの名無しさん (ワッチョイ c101-kvF8 [126.3.57.183])
2020/11/25(水) 21:48:23.27ID:UiakocYp0 >>315
sortかfotEachしたら?
sortかfotEachしたら?
317デフォルトの名無しさん (ワッチョイ c101-kvF8 [126.3.57.183])
2020/11/25(水) 22:03:22.81ID:UiakocYp0318デフォルトの名無しさん (ワッチョイ 33bd-W+Es [133.200.2.96])
2020/11/25(水) 22:12:00.77ID:3CNxpkun0319デフォルトの名無しさん (ワッチョイ 194e-U2xp [210.138.216.243])
2020/11/25(水) 22:14:27.47ID:zD7zhP2P0 const foo = hoge.sort((a, b) => a.num - b.num).pop()
とか
const foo = hoge.sort((a, b) => b.num - a.num)[0]
とか。
しかし両者ともhogeを書き換えてしまうので、
const foo = [...hoge].sort((a, b) => a.num - b.num).pop()
とか
const foo = [...hoge].sort((a, b) => b.num - a.num)[0]
のほうが望みのものかもね。
あとは
const foo = hoge.reduce((acc, r) => r.num > acc.num ? r : acc)
とか。
とか
const foo = hoge.sort((a, b) => b.num - a.num)[0]
とか。
しかし両者ともhogeを書き換えてしまうので、
const foo = [...hoge].sort((a, b) => a.num - b.num).pop()
とか
const foo = [...hoge].sort((a, b) => b.num - a.num)[0]
のほうが望みのものかもね。
あとは
const foo = hoge.reduce((acc, r) => r.num > acc.num ? r : acc)
とか。
320デフォルトの名無しさん (ブーイモ MMeb-/4Ud [163.49.208.217])
2020/11/25(水) 22:26:19.76ID:iWjekW4fM sortしなくていいケースでsortするのは無駄
reduceかfor-ofで
reduceかfor-ofで
321デフォルトの名無しさん (ワッチョイ 194e-U2xp [210.138.216.243])
2020/11/25(水) 22:29:12.37ID:zD7zhP2P0 >>318
> numは存在しない場合もありました
このような後出し要件の場合は、安全なアクセス関数を追加で用意して差し込むのが簡単。
例えば、
const getNumSafe = ({num = -Infinity}) => num
const foo = hoge.reduce((acc, r) => getNumSafe(r) > getNumSafe(acc) ? r : acc)
のように。
> numは存在しない場合もありました
このような後出し要件の場合は、安全なアクセス関数を追加で用意して差し込むのが簡単。
例えば、
const getNumSafe = ({num = -Infinity}) => num
const foo = hoge.reduce((acc, r) => getNumSafe(r) > getNumSafe(acc) ? r : acc)
のように。
322デフォルトの名無しさん (ブーイモ MMeb-/4Ud [163.49.214.133])
2020/11/25(水) 22:30:06.01ID:drNJreauM ライブラリ可ならlodashのmaxBy
323デフォルトの名無しさん (ワッチョイ 33bd-W+Es [133.200.2.96])
2020/11/25(水) 22:50:57.62ID:3CNxpkun0324デフォルトの名無しさん (ワッチョイ 592c-OOND [114.144.98.145])
2020/11/27(金) 01:16:52.95ID:lOUpIwv20 Lodash は多くのライブラリも使っているから、使うべき!
プロジェクトのライブラリの依存関係を検索すると、
多くのライブラリが、Lodash に依存してる
プロジェクトのライブラリの依存関係を検索すると、
多くのライブラリが、Lodash に依存してる
325デフォルトの名無しさん (ワッチョイ 194e-nRkK [210.138.216.243])
2020/11/27(金) 03:15:11.50ID:W+zDVYCR0 Netflixはlodash切って素のJSで書き直したけどな。
326デフォルトの名無しさん (オッペケ Sr1d-kvF8 [126.194.236.168])
2020/11/27(金) 12:17:00.93ID:Syvn71JBr ライブラリが必要な程、複雑な処理ではない気がするけどな
hoge.reduce((max, current) => max < current.num ? cutrent.num : max, -Infinity);
hoge.reduce((max, current) => max < current.num ? cutrent.num : max, -Infinity);
327デフォルトの名無しさん (オッペケ Sr1d-Gu+o [126.157.78.99])
2020/11/27(金) 18:55:39.16ID:gUqD3P5er 使うモジュールだけにしときな
328デフォルトの名無しさん (ワッチョイ 53f0-P4WK [115.65.191.12])
2020/11/30(月) 16:28:41.73ID:gpUfY6cE0 動的型付け言語って本当にわかりづらい
javascriptでオブジェクト指向的なプログラムを組もうと思って
簡単な本でjavascriptを勉強してるんだけど
interfaceないのにどうやってオブジェクト指向的な開発してるんですか?
typescriptしたほうがいいんだろうか?
javascriptでオブジェクト指向的なプログラムを組もうと思って
簡単な本でjavascriptを勉強してるんだけど
interfaceないのにどうやってオブジェクト指向的な開発してるんですか?
typescriptしたほうがいいんだろうか?
329デフォルトの名無しさん (オッペケ Sr1d-HgZM [126.133.242.112])
2020/11/30(月) 16:37:41.46ID:0Mqgtux2r >>328
してください
してください
330デフォルトの名無しさん (オッペケ Sr1d-kvF8 [126.194.236.168])
2020/11/30(月) 19:07:05.83ID:CqWD2gHur >>328
class使って下さい
class使って下さい
331デフォルトの名無しさん (ワッチョイ 1b46-P4WK [111.98.111.65])
2020/11/30(月) 19:08:03.35ID:1U/wXaEH0 >>330
インターフェイスやabstracut使わずにどうやれと
インターフェイスやabstracut使わずにどうやれと
332デフォルトの名無しさん (オッペケ Sr1d-kvF8 [126.194.236.168])
2020/11/30(月) 19:19:23.06ID:CqWD2gHur >>331
あるもので何とかする気のない人にどう答えろと
あるもので何とかする気のない人にどう答えろと
333デフォルトの名無しさん (ワッチョイ 1b46-P4WK [111.98.111.65])
2020/11/30(月) 21:04:19.76ID:1U/wXaEH0 javascriptでオブジェクト指向開発は、今のところは無理ってことですかね?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
- 米シンクタンク「アメリカは台湾問題で"あいまい戦略"を取っている。高市早苗はこの方針から逸脱している」 [603416639]
- 【高市早苗】バス会社、中国からのキャンセルで12月で2000万円~3000万円の損失へ [115996789]
- かしこいワンコっていうVtuberの子知ってる?
- カレーライスぐちゃぐちゃに混ぜる奴🤣
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
