!extend:checked:vvvvvv:1000:512
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-5のテンプレを読んだ上で質問してください。次スレは>>950が>>2の「次スレの立て方」を元に立ててください
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
■前スレ
JavaScript の質問用スレッド vol.124
https://mevius.5ch.net/test/read.cgi/tech/1636525464/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:: EXT was configured
JavaScript の質問用スレッド vol.125
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 1301-RMnj [36.240.123.227])
2022/08/07(日) 15:57:40.26ID:TS5TGpUB0206デフォルトの名無しさん (ワッチョイ 3d4b-aW8A [110.2.215.28 [上級国民]])
2022/11/16(水) 01:28:38.23ID:yZvimkXe0 >>205
「画像とテキストが一緒になってる図で、画像だけ拡大縮小してテキストサイズはそのままにする」というスクリプトなんですけど、キャンセルすると図の大きさはそのままでテキストだけ拡大縮小してしまうんですよ
これでは困るのでキャンセルの箇所でコードから抜け出したい
「画像とテキストが一緒になってる図で、画像だけ拡大縮小してテキストサイズはそのままにする」というスクリプトなんですけど、キャンセルすると図の大きさはそのままでテキストだけ拡大縮小してしまうんですよ
これでは困るのでキャンセルの箇所でコードから抜け出したい
207デフォルトの名無しさん (ワッチョイ bd4f-FFna [180.0.191.133])
2022/11/16(水) 03:25:10.60ID:pSETlPcG0 CAN.onClick = function(){win1.close(); return; }
ではなく、
CAN.onClick = function(){win1.close()}
return;
上は、その無名関数から抜け出すだけで、
下は、全体の処理から抜け出す
ではなく、
CAN.onClick = function(){win1.close()}
return;
上は、その無名関数から抜け出すだけで、
下は、全体の処理から抜け出す
208デフォルトの名無しさん (ワッチョイ 3d4b-aW8A [110.2.215.28 [上級国民]])
2022/11/16(水) 14:57:45.45ID:yZvimkXe0 >>207
まだ仕事中で確かめられていないのですが、キャンセルでなくてOKの時も抜けたりしませんか?
まだ仕事中で確かめられていないのですが、キャンセルでなくてOKの時も抜けたりしませんか?
209デフォルトの名無しさん (ワッチョイ 3d4b-OzUL [110.2.215.28 [上級国民]])
2022/11/16(水) 16:05:43.43ID:yZvimkXe0210デフォルトの名無しさん (ワッチョイ bd10-FFna [180.12.82.129])
2022/11/17(木) 16:50:10.12ID:BipbxCG90 <div id="zahyou" style="position:absolute">aaaaaaaaaa</div>
<スクリプト>
for(let n=1;n<=100;n++){
if(n % 2 === 0){
document.getElementById("zahyou").style.left = "0px";
}
else{
document.getElementById("zahyou").style.left = "200px";
}
}
</スクリプト>
としてもaaaaaaaaaaの位置が全く動かないけど
<スクリプト>
let n=0;
setInterval(
function(){
if(n % 2===0){
document.getElementById("zahyou").style.left = "0px";
}
else{
document.getElementById("zahyou").style.left = "200px";
}
n++;
}
,100
);
</スクリプト>
とするとaaaaaaaaaaの位置が動くのはどうしてですか?
<スクリプト>
for(let n=1;n<=100;n++){
if(n % 2 === 0){
document.getElementById("zahyou").style.left = "0px";
}
else{
document.getElementById("zahyou").style.left = "200px";
}
}
</スクリプト>
としてもaaaaaaaaaaの位置が全く動かないけど
<スクリプト>
let n=0;
setInterval(
function(){
if(n % 2===0){
document.getElementById("zahyou").style.left = "0px";
}
else{
document.getElementById("zahyou").style.left = "200px";
}
n++;
}
,100
);
</スクリプト>
とするとaaaaaaaaaaの位置が動くのはどうしてですか?
211デフォルトの名無しさん (ブーイモ MM8e-ompL [133.159.152.122])
2022/11/17(木) 17:45:40.38ID:ZrcXbqFYM 上も動いてるよ
一瞬で終わるから見えないだけ
一瞬で終わるから見えないだけ
212デフォルトの名無しさん (ワッチョイ 46bd-masj [49.129.242.78])
2022/11/17(木) 18:17:32.44ID:6VGHAaqQ0 >>210
画面のレンダリングは逐一行われないから。
イベント契機で実行されたスクリプトの処理を一旦終えたときその最終的な結果がレンダリングされるというか、一旦処理を終えないとレンダリングされないと思っておけばいい。
setInterval のやつは、インターバルの契機で実行された処理は1コマ分の処理だけして終わるから、その都度レンダリングされる(かもしれない)。
実際は周期があまり高頻度だと、処理を終えてもレンダリングされるとは限らず間引かれたりする。
ただ未レンダリングだからといってもDOMの状態やスタイルの設定などは逐一適用されてる。
画面のレンダリングは逐一行われないから。
イベント契機で実行されたスクリプトの処理を一旦終えたときその最終的な結果がレンダリングされるというか、一旦処理を終えないとレンダリングされないと思っておけばいい。
setInterval のやつは、インターバルの契機で実行された処理は1コマ分の処理だけして終わるから、その都度レンダリングされる(かもしれない)。
実際は周期があまり高頻度だと、処理を終えてもレンダリングされるとは限らず間引かれたりする。
ただ未レンダリングだからといってもDOMの状態やスタイルの設定などは逐一適用されてる。
213デフォルトの名無しさん (ワッチョイ bd10-iQtw [180.12.82.129])
2022/11/17(木) 20:15:58.57ID:BipbxCG90214デフォルトの名無しさん (ワッチョイ bd4f-FFna [180.0.191.133])
2022/11/18(金) 09:19:55.63ID:Wj1K/ZC10 a = "0px";
a = "200px";
a = "0px";
a = "200px";
a = "0px";
a = "200px";
こういう処理を100回やってから、100回目の後だけ再描画されるのだろう。
1〜99回までは値が設定されるだけで、再描画されない
a = "200px";
a = "0px";
a = "200px";
a = "0px";
a = "200px";
こういう処理を100回やってから、100回目の後だけ再描画されるのだろう。
1〜99回までは値が設定されるだけで、再描画されない
215デフォルトの名無しさん (スッップ Sd7a-PnSp [49.98.175.43])
2022/11/18(金) 17:10:38.42ID:T5zu6F7Id 横からで申し訳ないけど、アニメーション処理を行うならsettimeoutとかでわざと描画間隔を空ける必要があるって解釈でいいのかな?
216デフォルトの名無しさん (ワッチョイ 9abd-masj [221.171.102.71])
2022/11/18(金) 17:16:10.46ID:Zs9eTx2N0217デフォルトの名無しさん (ワッチョイ f6cf-gPc0 [153.174.224.39])
2022/11/18(金) 17:23:26.00ID:UFs4jVzI0 ブラウザでは、Performanceパネルや
タイムラインパネルでチェックできる
タイムラインパネルでチェックできる
218デフォルトの名無しさん (ワッチョイ bd61-+FOd [180.15.119.124])
2022/11/18(金) 19:14:38.47ID:RNEbLEjB0 アニメーションならsetTimeoutよりrequestAnimationFrameだね
219デフォルトの名無しさん (ワッチョイ dd5f-PnSp [14.8.104.32])
2022/11/18(金) 21:22:51.98ID:dA0W7FfK0220デフォルトの名無しさん (ワッチョイ 5b4f-kfYZ [180.0.191.133])
2022/11/19(土) 04:30:35.89ID:uCGRkc1L0 ゲームセンターにある機械とか、パソコンゲームでは、よくコマ(フレーム)落ちが起きる
1/30秒とか1/60秒の間に、処理が終わらないので、再描画できない
1/30秒とか1/60秒の間に、処理が終わらないので、再描画できない
221デフォルトの名無しさん (ワッチョイ db4b-7Gcv [110.2.215.28 [上級国民]])
2022/11/19(土) 19:26:10.00ID:2irpXLl70 例えばドキュメント上に5つのアイテムがあるとして、その5つのアイテムそれぞれの幅を合計したものが知りたいのですが、途中までコードを考えました
(5つというのは仮のアイテム数で実際は未定です)
DOC=activeDocument;
SEL=DOC.selection;
for(i=0;i<SEL.length;s++){
BND=SEL[i].geometricbounds;
W=BND[2]-BND[0];
Wが最初の1つのアイテムの幅になると思うのですが、これをSEL[0]~SEL[4]まで合計するにはこの続きにどういうコードを書けばいいのでしょうか?
(間違っていたら既に書いてあるコードを変更してください)
(5つというのは仮のアイテム数で実際は未定です)
DOC=activeDocument;
SEL=DOC.selection;
for(i=0;i<SEL.length;s++){
BND=SEL[i].geometricbounds;
W=BND[2]-BND[0];
Wが最初の1つのアイテムの幅になると思うのですが、これをSEL[0]~SEL[4]まで合計するにはこの続きにどういうコードを書けばいいのでしょうか?
(間違っていたら既に書いてあるコードを変更してください)
222デフォルトの名無しさん (ワッチョイ db4b-7Gcv [110.2.215.28 [上級国民]])
2022/11/19(土) 19:32:18.92ID:2irpXLl70 すみません
質問してから気付きました
これでいけますか?
DOC=activeDocument;
SEL=DOC.selection;
for(i=0;i<SEL.length;s++){
BND=SEL[i].geometricbounds;
W1=BND[2]-BND[0];
W=W+W1;
}
質問してから気付きました
これでいけますか?
DOC=activeDocument;
SEL=DOC.selection;
for(i=0;i<SEL.length;s++){
BND=SEL[i].geometricbounds;
W1=BND[2]-BND[0];
W=W+W1;
}
223デフォルトの名無しさん (ワッチョイ 6301-mUd4 [60.111.111.83])
2022/11/19(土) 23:28:09.02ID:9yqGhBqR0 >>222
試してから質問しよう
試してから質問しよう
224デフォルトの名無しさん (ワッチョイ 1a02-jVlY [59.129.56.155])
2022/11/20(日) 07:58:25.96ID:zjUQ0JII0 for の前にW=0してね
225デフォルトの名無しさん (ワッチョイ db4b-7Gcv [110.2.215.28 [上級国民]])
2022/11/20(日) 19:31:32.32ID:bgVSrlSG0 >>224
ありがとうございます
for(i=0;i<SEL.length;i++){ ~ }っていう式がコードの中にいくつも出てくるんですけど、変数iのところはそれぞれの式で変えないといけないんでしょうか?
for(j=0;j<SEL.length;j++){ ~ }とか。
関数内だけですか?
同じ変数文字が使えるのは
ありがとうございます
for(i=0;i<SEL.length;i++){ ~ }っていう式がコードの中にいくつも出てくるんですけど、変数iのところはそれぞれの式で変えないといけないんでしょうか?
for(j=0;j<SEL.length;j++){ ~ }とか。
関数内だけですか?
同じ変数文字が使えるのは
226デフォルトの名無しさん (JP 0Hbb-stRS [126.249.157.89])
2022/11/20(日) 20:42:57.11ID:XzYfw6V5H いい質問ですね
変数のスコープの問題なので試してみたらいかがでしょう?
jsのスコープをしっかり押さえると
伸びしろが変わります!
変数のスコープの問題なので試してみたらいかがでしょう?
jsのスコープをしっかり押さえると
伸びしろが変わります!
227デフォルトの名無しさん (ワッチョイ db4b-7Gcv [110.2.215.28 [上級国民]])
2022/11/21(月) 02:03:46.52ID:ZMd64Nu10 ありがとうございます
勉強を始めて1か月ですけど改造はわりとうまく出来るようになりました
最初は何が書いてあるのかわからないんだけど、ジーッとしつこく見てるとわかって来ますね
勉強を始めて1か月ですけど改造はわりとうまく出来るようになりました
最初は何が書いてあるのかわからないんだけど、ジーッとしつこく見てるとわかって来ますね
228デフォルトの名無しさん (JP 0Hbb-stRS [126.249.157.89])
2022/11/21(月) 07:16:36.42ID:uz2/XLFXH let も var も(スコープ内)再代入可能です
let i=0;
for(i=0;i<10;i++,console.log(1,i));
for(i=0;i<10;i++,console.log(2,i));
console.log('------');
for(i=0;i<10;i++){
console.log(3,i);
for(i=0;i<10;i++){
console.log(4,i);
}
}
console.log('------');
let t=0;
for(i=0;i<10;i++){
console.log(5,i);
for(t=0;t<10;t++){
console.log(6,t);
}
}
let i=0;
for(i=0;i<10;i++,console.log(1,i));
for(i=0;i<10;i++,console.log(2,i));
console.log('------');
for(i=0;i<10;i++){
console.log(3,i);
for(i=0;i<10;i++){
console.log(4,i);
}
}
console.log('------');
let t=0;
for(i=0;i<10;i++){
console.log(5,i);
for(t=0;t<10;t++){
console.log(6,t);
}
}
229デフォルトの名無しさん (ワッチョイ 97bd-Ikze [122.133.73.231])
2022/11/21(月) 08:11:57.92ID:ygpzkhrQ0 >>228
中腹の二重ループについて敢えてやってるなら説明が必要じゃね。
中腹の二重ループについて敢えてやってるなら説明が必要じゃね。
230デフォルトの名無しさん (JP 0Hbb-stRS [126.249.157.89])
2022/11/21(月) 18:52:09.71ID:uz2/XLFXH231デフォルトの名無しさん (ワッチョイ db4b-7Gcv [110.2.215.28 [上級国民]])
2022/11/21(月) 18:58:18.92ID:ZMd64Nu10 入子じゃないですよ
ドキュメント上にアイテムが複数あって、何回も全アイテムを移動したり変形したりする必用があるので並列です
ドキュメント上にアイテムが複数あって、何回も全アイテムを移動したり変形したりする必用があるので並列です
232デフォルトの名無しさん (ワッチョイ db4b-7Gcv [110.2.215.28 [上級国民]])
2022/11/21(月) 19:04:10.48ID:ZMd64Nu10233デフォルトの名無しさん (ワッチョイ 03bd-Ikze [220.144.110.253])
2022/11/21(月) 19:35:19.44ID:+zVCoGZg0234デフォルトの名無しさん (ワッチョイ 9309-2FOX [150.91.1.219])
2022/11/21(月) 20:09:25.61ID:T5+vrdKC0 カスタム要素って使われてます?
235デフォルトの名無しさん (JP 0Hbb-stRS [126.249.157.89])
2022/11/21(月) 20:10:57.61ID:uz2/XLFXH >>232
// No 1
for(i=0;i<10;i++){
console.log(3,i);
for(i=0;i<10;i++){
console.log(4,i);
}
}
console.log('------');
// No 2
let t=0;
for(i=0;i<10;i++){
console.log(5,i);
for(t=0;t<10;t++){
console.log(6,t);
}
}
No1とNo2の違いは分かりますでしょうか?
一度コードを実行してみてください
No1のfor文の繰り返し1回目は、i=0です
次にNo2のfor文では、i=1から始まります
その後No2のfor文が繰り返しされi=10までカウントされNo1のfor文繰り返しに戻ります
その時、i=10になっているので、No1のfor文は終了になり、for文を抜けます
入子構造のインクリメント演算子では同じ変数を使うときには要注意ですね
// No 1
for(i=0;i<10;i++){
console.log(3,i);
for(i=0;i<10;i++){
console.log(4,i);
}
}
console.log('------');
// No 2
let t=0;
for(i=0;i<10;i++){
console.log(5,i);
for(t=0;t<10;t++){
console.log(6,t);
}
}
No1とNo2の違いは分かりますでしょうか?
一度コードを実行してみてください
No1のfor文の繰り返し1回目は、i=0です
次にNo2のfor文では、i=1から始まります
その後No2のfor文が繰り返しされi=10までカウントされNo1のfor文繰り返しに戻ります
その時、i=10になっているので、No1のfor文は終了になり、for文を抜けます
入子構造のインクリメント演算子では同じ変数を使うときには要注意ですね
236デフォルトの名無しさん (ワッチョイ db4b-7Gcv [110.2.215.28 [上級国民]])
2022/11/22(火) 17:55:58.75ID:VelmWtaS0237デフォルトの名無しさん (ワッチョイ db4b-7Gcv [110.2.215.28 [上級国民]])
2022/11/22(火) 17:58:38.56ID:VelmWtaS0238デフォルトの名無しさん (ワッチョイ 7f4e-SIHv [210.138.216.243])
2022/11/22(火) 18:07:50.06ID:iGHsIGH/0 let、constどころかvarすら使えない(使わない)のであればPythonにでも行ったほうがいいんじゃない?
239デフォルトの名無しさん (ワッチョイ db4b-7Gcv [110.2.215.28 [上級国民]])
2022/11/22(火) 18:52:57.26ID:VelmWtaS0 >>238
adobeスクリプトですがvarは使えます
他人のスクリプトを改造してる段階で、potisionで正しく並べられていなかったのでgeometricBounds[3]にしたと。
adobeのソフトはJavaScriptでないと動きません
adobeスクリプトですがvarは使えます
他人のスクリプトを改造してる段階で、potisionで正しく並べられていなかったのでgeometricBounds[3]にしたと。
adobeのソフトはJavaScriptでないと動きません
240デフォルトの名無しさん (ワッチョイ db4b-7Gcv [110.2.215.28 [上級国民]])
2022/11/22(火) 19:10:38.94ID:VelmWtaS0 セミコロンも入って無いし、あまりお手本としては良くないかも
でもこの人のadobe スクリプトが一番わかりやすいので
でもこの人のadobe スクリプトが一番わかりやすいので
241デフォルトの名無しさん (JP 0Hbb-stRS [126.249.157.89])
2022/11/22(火) 19:40:30.69ID:/QBTlFnBH 何を制御してるのか知りませんけれど
お好きなように言語を選んで
お好きなようにコードを書けばいいと思います
楽しく好きなように自由に!ですね
JSを使う場合の注意点ですけど
古いJSとの互換性を保つため
JSは結構複雑怪奇な言語になりつつあります
変数の取り扱いはどこ言語でも慎重に設計しますけど
JSの変数とスコープはちょっと特殊なので
制御系でJS扱うのなら注意したほうがって思います
お好きなように言語を選んで
お好きなようにコードを書けばいいと思います
楽しく好きなように自由に!ですね
JSを使う場合の注意点ですけど
古いJSとの互換性を保つため
JSは結構複雑怪奇な言語になりつつあります
変数の取り扱いはどこ言語でも慎重に設計しますけど
JSの変数とスコープはちょっと特殊なので
制御系でJS扱うのなら注意したほうがって思います
242デフォルトの名無しさん (ワッチョイ 4ecf-TaOI [153.227.173.254])
2022/11/23(水) 01:04:55.03ID:Gf+fcBNM0 推奨しない書き方はほぼESLintで弾けるだろ
243デフォルトの名無しさん (ワッチョイ db4b-qBBW [110.2.215.28 [上級国民]])
2022/11/23(水) 14:55:32.43ID:uQH5TeI20 ドキュメント内の全てのテキストフレームを選択するのは、
var txtObj = activeDocument.textFrames;
for (var i=0; i<txtObj.length; i++){
txtObj[i].selected = true;
}
で、ここからそれらを変形させたりしていくんですけど、
ドキュメント内全てでは無くて、最初に選択したものの中から
さらにテキストフレームのみを選択するにはどう書けばいいのでしょうか?
var sel=activeDocument.selection;
var txtObj = sel.textFrames;
for (var i=0; i<txtObj.length; i++){
txtObj[i].selected = true;
これでは、var txtObj = sel.textFrames;でエラーが出ます。
ドキュメント内の選択したものの中のテキストフレームのみを選択しないと、
ドキュメント内の全てのテキストフレームが変形されてしまいます。
var txtObj = activeDocument.textFrames;
for (var i=0; i<txtObj.length; i++){
txtObj[i].selected = true;
}
で、ここからそれらを変形させたりしていくんですけど、
ドキュメント内全てでは無くて、最初に選択したものの中から
さらにテキストフレームのみを選択するにはどう書けばいいのでしょうか?
var sel=activeDocument.selection;
var txtObj = sel.textFrames;
for (var i=0; i<txtObj.length; i++){
txtObj[i].selected = true;
これでは、var txtObj = sel.textFrames;でエラーが出ます。
ドキュメント内の選択したものの中のテキストフレームのみを選択しないと、
ドキュメント内の全てのテキストフレームが変形されてしまいます。
244243 (ワッチョイ db4b-qBBW [110.2.215.28 [上級国民]])
2022/11/23(水) 15:35:10.48ID:uQH5TeI20 var sel=activeDocument.selection;
for (var i=0; i<sel.length; i++){
if(sel[i].typename != "TextFrame"){
sel[i].selected = false;
}
}
これで出来ました。
お騒がせしました。
for (var i=0; i<sel.length; i++){
if(sel[i].typename != "TextFrame"){
sel[i].selected = false;
}
}
これで出来ました。
お騒がせしました。
245デフォルトの名無しさん (スッップ Sdba-iL0L [49.98.168.218])
2022/11/23(水) 15:52:37.80ID:QLRwruG1d JavaScriptの一般的な文法とかの話はともかく、adobe固有の問題はここで聞くべきではないよ
246デフォルトの名無しさん (ワッチョイ 4e7b-DbPa [153.178.229.141])
2022/11/24(木) 09:02:34.19ID:8kN4Xh6N0247デフォルトの名無しさん (ワッチョイ db4b-7Gcv [110.2.215.28 [上級国民]])
2022/11/24(木) 13:05:30.40ID:DUoZRcjr0 一般的なJavaScriptってgeometricBoundsとか使いませんか?
長方形の座標を得るメソッド
長方形の座標を得るメソッド
248デフォルトの名無しさん (ワッチョイ 4e7b-DbPa [153.178.229.141])
2022/11/24(木) 13:16:11.58ID:8kN4Xh6N0249デフォルトの名無しさん (スッップ Sdba-iL0L [49.98.165.148])
2022/11/24(木) 13:35:39.39ID:5aiuStXqd250デフォルトの名無しさん (ワッチョイ db4b-7Gcv [110.2.215.28 [上級国民]])
2022/11/24(木) 15:52:34.09ID:DUoZRcjr0251デフォルトの名無しさん (ワッチョイ cedb-TaOI [217.178.96.73])
2022/11/25(金) 03:26:14.01ID:4TMxj3Y80 $.Deferred()って分かりにくい。
252デフォルトの名無しさん (ワッチョイ db4b-7Gcv [110.2.215.28 [上級国民]])
2022/11/25(金) 17:44:10.29ID:d3/PWV150 配列内の数字が1つでも違ってたらtrueというのをif文で書きたいのですが、どう書けば良いのでしょうか?
例えば[6.356, 6.356, 7.482, 6.356]はtrueで、[6.356, 6.356, 6.356, 6.356]はfalseです。
配列内の数字の個数は決まっていません。
if(~){return;}の~の部分が知りたいのですが…
(違う数値が混じっていたら終了(return)したい)
例えば[6.356, 6.356, 7.482, 6.356]はtrueで、[6.356, 6.356, 6.356, 6.356]はfalseです。
配列内の数字の個数は決まっていません。
if(~){return;}の~の部分が知りたいのですが…
(違う数値が混じっていたら終了(return)したい)
253デフォルトの名無しさん (スッップ Sdba-7h5B [49.98.165.116])
2022/11/25(金) 18:01:34.82ID:NOaCOzi6d 配列内の数値が全部同じならtrue,というのを書いてみてください
ところで浮動小数点数には誤差がつきものなので
「だいたい同じ」を意味する処理を書く必要があります
ところで浮動小数点数には誤差がつきものなので
「だいたい同じ」を意味する処理を書く必要があります
254デフォルトの名無しさん (ワッチョイ 5a7c-/lHT [221.241.223.58])
2022/11/25(金) 18:03:10.25ID:gnjN6QfX0255デフォルトの名無しさん (ワッチョイ 4ecf-zHbW [153.174.224.39])
2022/11/25(金) 18:10:27.64ID:v7fq4Pg10 そんな丁度いいオブジェクトがあったんだな
256デフォルトの名無しさん (ワッチョイ 977c-SIHv [122.213.53.114])
2022/11/25(金) 19:20:10.26ID:NT6Ragjt0 >>252
var a = [6.356, 6.356, 7.482, 6.356];
if (new Set(a).size != 1) return;
全部同じならSetのsizeは1になるはずだから
var a = [6.356, 6.356, 7.482, 6.356];
if (new Set(a).size != 1) return;
全部同じならSetのsizeは1になるはずだから
257デフォルトの名無しさん (ワッチョイ db4b-qBBW [110.2.215.28 [上級国民]])
2022/11/25(金) 19:30:19.48ID:d3/PWV150 >>254
エラーが出ますが、間違っていますか?
var I=[72.356, 72.356, 72.356, 72.356, 72.356];
If(len(set(I))>1){
alert("違う値が入っています");
}
alert("全部同じ値です");
エラーが出ますが、間違っていますか?
var I=[72.356, 72.356, 72.356, 72.356, 72.356];
If(len(set(I))>1){
alert("違う値が入っています");
}
alert("全部同じ値です");
258デフォルトの名無しさん (ワッチョイ db4b-qBBW [110.2.215.28 [上級国民]])
2022/11/25(金) 19:45:09.62ID:d3/PWV150 setってES2015(ES6)で導入されたって書いてありますね。
自分の環境では使えないんだと思います。
let()もたぶん…
自分の環境では使えないんだと思います。
let()もたぶん…
259デフォルトの名無しさん (ササクッテロラ Spbb-N/KI [126.182.84.180])
2022/11/25(金) 20:02:47.41ID:1Hc/VSWcp len も set もそんなメソッドは定義されてない
>>256 は最近のブラウザなら動くはず
>>256 は最近のブラウザなら動くはず
260デフォルトの名無しさん (ワッチョイ db4b-qBBW [110.2.215.28 [上級国民]])
2022/11/25(金) 20:09:20.31ID:d3/PWV150 このコードではダメですか?
var I=[72.356, 72.356, 75.356, 72.356, 72.356];
for(var s=0;s<I.length-1;s++){
if(I[s]!=I[s+1]) return;
例外が出るでしょうか?
var I=[72.356, 72.356, 75.356, 72.356, 72.356];
for(var s=0;s<I.length-1;s++){
if(I[s]!=I[s+1]) return;
例外が出るでしょうか?
261デフォルトの名無しさん (ワッチョイ 5a61-9v2m [221.189.49.240])
2022/11/25(金) 20:09:23.18ID:XjJhlDNk0 lenとかsetってpythonじゃ?
262デフォルトの名無しさん (ワッチョイ db4b-qBBW [110.2.215.28 [上級国民]])
2022/11/25(金) 20:15:54.07ID:d3/PWV150 >>261
lenはpythonみたいです
setはES2015(ES6)で導入されたらしいです
}が抜けてました。
var I=[72.356, 72.356, 75.356, 72.356, 72.356];
for(var s=0;s<I.length-1;s++){
if(I[s]!=I[s+1]) return;
}
です
lenはpythonみたいです
setはES2015(ES6)で導入されたらしいです
}が抜けてました。
var I=[72.356, 72.356, 75.356, 72.356, 72.356];
for(var s=0;s<I.length-1;s++){
if(I[s]!=I[s+1]) return;
}
です
263デフォルトの名無しさん (ワッチョイ 6301-N/KI [60.111.184.192])
2022/11/25(金) 20:59:13.75ID:BAWwEyW20 念のため指摘しておくが、Setとsetは別もんだぞ
確かにどっちもES2015で策定されてるが
Set が重複なしの集合
setはアクセサプロパティの構文で使われるやつ
確かにどっちもES2015で策定されてるが
Set が重複なしの集合
setはアクセサプロパティの構文で使われるやつ
264デフォルトの名無しさん (アウアウウー Sac7-SIHv [106.133.52.225])
2022/11/25(金) 21:07:08.32ID:hxoXdPtJa >>252
var a = [6.356, 6.356, 7.482, 6.356];
if (a.join('').replace(RegExp(a[0], 'g'), '')) return;
falsyな値が入らないならこれでも
var a = [6.356, 6.356, 7.482, 6.356];
if (a.join('').replace(RegExp(a[0], 'g'), '')) return;
falsyな値が入らないならこれでも
265デフォルトの名無しさん (ワッチョイ 5a7c-/lHT [221.241.223.58])
2022/11/25(金) 21:13:53.78ID:gnjN6QfX0266デフォルトの名無しさん (スッップ Sd33-7E5L [49.98.165.20])
2022/11/26(土) 00:06:05.14ID:lP1wiXrnd >>264
うーん、質問者のスキルし対して相応な解決策とは言い難いものを薦めるのはいかがなものかと・・・
うーん、質問者のスキルし対して相応な解決策とは言い難いものを薦めるのはいかがなものかと・・・
267デフォルトの名無しさん (ワッチョイ 214b-VSyR [110.2.215.28 [上級国民]])
2022/11/26(土) 02:18:08.00ID:D9ouMKv50 もうこれで出来ましたよ
var I=[72.356, 72.356, 75.356, 72.356, 72.356];
for(var s=0;s<I.length-1;s++){
if(I[s]!=I[s+1]) return;
}
Setもsetも使えませんでした
ES2015に対応してないので
var I=[72.356, 72.356, 75.356, 72.356, 72.356];
for(var s=0;s<I.length-1;s++){
if(I[s]!=I[s+1]) return;
}
Setもsetも使えませんでした
ES2015に対応してないので
268デフォルトの名無しさん (ワッチョイ 214b-VSyR [110.2.215.28 [上級国民]])
2022/11/26(土) 03:19:46.82ID:D9ouMKv50 正規表現もいつか挑戦してみたいな
269デフォルトの名無しさん (ワッチョイ 1301-YdBL [219.204.123.70])
2022/11/26(土) 08:13:04.83ID:rUW0f5oN0 >>260
まあたいして変わらんけど -1 とか +1 とかがちょっと気になるので俺なら
for(var s = 1; s < I.length; s++){
if(I[0] != I[s]) return;
ってするかな
まあたいして変わらんけど -1 とか +1 とかがちょっと気になるので俺なら
for(var s = 1; s < I.length; s++){
if(I[0] != I[s]) return;
ってするかな
270デフォルトの名無しさん (ワッチョイ 214b-VSyR [110.2.215.28 [上級国民]])
2022/11/26(土) 10:42:13.14ID:D9ouMKv50271デフォルトの名無しさん (アウアウウー Sa15-WfGi [106.133.87.182])
2022/11/26(土) 11:15:10.62ID:ptfVYjC4a >>264
var a = [6.356, 6.356, 7.482, 6.356];
if (a.join('').replaceAll(a[0], '')) return;
replaceAll使えればもっと短くなった
var a = [6.356, 6.356, 7.482, 6.356];
if (a.join('').replaceAll(a[0], '')) return;
replaceAll使えればもっと短くなった
272デフォルトの名無しさん (アウアウウー Sa15-WfGi [106.133.87.182])
2022/11/26(土) 11:30:07.40ID:ptfVYjC4a >>252
var a = [6.356, 6.356, 7.482, 6.356];
if (a.some(elem => elem != a[0])) return;
こっちのほうが分かりやすいか
「もし、aのいずれかの要素がa[0]と異なる時、returnする」と読み下せる
アロー関数が使えない環境の場合は
if (a.some(function(elem) {return elem != a[0];})) return;
になる
var a = [6.356, 6.356, 7.482, 6.356];
if (a.some(elem => elem != a[0])) return;
こっちのほうが分かりやすいか
「もし、aのいずれかの要素がa[0]と異なる時、returnする」と読み下せる
アロー関数が使えない環境の場合は
if (a.some(function(elem) {return elem != a[0];})) return;
になる
273デフォルトの名無しさん (ワッチョイ ebcf-ykd8 [153.174.224.39])
2022/11/26(土) 11:52:31.88ID:kr9O5fHu0 if( I.find( v=> v != I[0] ) ) return;
なんてのも
なんてのも
274デフォルトの名無しさん (ワッチョイ 214b-VSyR [110.2.215.28 [上級国民]])
2022/11/26(土) 17:10:15.31ID:D9ouMKv50 eval()でダイアログに計算式が入力出来るね
275デフォルトの名無しさん (ワッチョイ 214f-emCW [180.0.191.133])
2022/11/27(日) 04:24:45.22ID:/9RKjThA0 ごく基本的な事だが、あいまい等価演算子 == などを使うな
厳密等価演算子 === などを使え
厳密等価演算子 === などを使え
276デフォルトの名無しさん (ワッチョイ 13bd-2eod [125.194.53.41])
2022/11/27(日) 04:40:17.42ID:peORqcZp0 >>275
なんで?
なんで?
277275 (ワッチョイ 214f-emCW [180.0.191.133])
2022/11/27(日) 13:33:33.93ID:/9RKjThA0 型違いの比較を考えるのは無理
obj_1 == obj_2
の場合の、双方の型の組合せ爆発を考えないといけないから
obj_1が配列で、obj_2がオブジェクトとか、その逆とか
こういうのを考えるのが無理なので、事前に型が決まる、TypeScript が出来た
obj_1 == obj_2
の場合の、双方の型の組合せ爆発を考えないといけないから
obj_1が配列で、obj_2がオブジェクトとか、その逆とか
こういうのを考えるのが無理なので、事前に型が決まる、TypeScript が出来た
278デフォルトの名無しさん (ワッチョイ ebcf-ykd8 [153.174.224.39])
2022/11/27(日) 13:49:08.40ID:lJvzY49o0 もしも使ってはいけないのなら
そんな演算子がなぜ実装されているのでしょうね
そんな演算子がなぜ実装されているのでしょうね
279デフォルトの名無しさん (スプッッ Sd33-7E5L [49.98.7.141])
2022/11/27(日) 13:57:27.72ID:VHRrzSjNd280デフォルトの名無しさん (ワッチョイ 9bbd-2eod [119.240.41.248])
2022/11/27(日) 13:58:48.05ID:1+HSvQjp0281デフォルトの名無しさん (オッペケ Sr1d-/VpS [126.133.239.177])
2022/11/27(日) 20:28:50.54ID:xHQljSwFr >>277は組合せ爆発とかTypeScriptとか言い出す前にまずこれを10回読んだ方がいい
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Equality
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Equality
282デフォルトの名無しさん (アウアウウー Sa15-WfGi [106.133.45.130])
2022/11/27(日) 20:57:46.07ID:6JUt6y9Ua >>281
そいつrubyガイジという名前の有名な糖質だから相手しないほうがいいよ
そいつrubyガイジという名前の有名な糖質だから相手しないほうがいいよ
283デフォルトの名無しさん (オッペケ Sr1d-/VpS [126.133.218.29])
2022/11/27(日) 22:26:59.14ID:SK6CiGhUr284デフォルトの名無しさん (ワッチョイ 214b-VSyR [110.2.215.28 [上級国民]])
2022/11/28(月) 01:09:53.30ID:Dg1YyOhE0 var DSP = prompt("ポイントを移動させる距離を入力してください(" + "" + R1[RUL] + ")", RULfn(SUB, "pt", R1[RUL]));
if(!DSP || isNaN(DSP)) return false;
プロンプトに入力される数字を+2やー3など数字に+かーが必ず付いたものに限定したいのですが、何と書けばいいでしょうか?
if(~)return false;の~の部分です
数字のみは不可です(+かーが必ず付いていないと)
2行目を変更しても3行目として追加しても、どちらでもいいです
if(!DSP || isNaN(DSP)) return false;
プロンプトに入力される数字を+2やー3など数字に+かーが必ず付いたものに限定したいのですが、何と書けばいいでしょうか?
if(~)return false;の~の部分です
数字のみは不可です(+かーが必ず付いていないと)
2行目を変更しても3行目として追加しても、どちらでもいいです
285デフォルトの名無しさん (ワッチョイ 13bd-2eod [125.198.10.42])
2022/11/28(月) 02:25:56.20ID:R5ym/m/50 >>284
この式で、先頭が - または + で始まり、1文字以上の数字が末尾まで並んだ文字列の場合に真になるはず。
DSP.match(/^[¥-¥+]¥d+$/)
そうじゃない文字列を判別したいなら ! で否定すればいい。
この式で、先頭が - または + で始まり、1文字以上の数字が末尾まで並んだ文字列の場合に真になるはず。
DSP.match(/^[¥-¥+]¥d+$/)
そうじゃない文字列を判別したいなら ! で否定すればいい。
286デフォルトの名無しさん (ワッチョイ 214b-VSyR [110.2.215.28 [上級国民]])
2022/11/28(月) 11:12:07.95ID:Dg1YyOhE0287デフォルトの名無しさん (ワッチョイ 194e-WfGi [210.138.216.243])
2022/11/28(月) 11:50:30.77ID:u/1oLUrZ0 /^[\-\+]\d+$/.test(DSP)
のほうが返り値がtrue/falseだからifの条件の用途ではより適切だと思う
のほうが返り値がtrue/falseだからifの条件の用途ではより適切だと思う
288デフォルトの名無しさん (ワッチョイ 214b-VSyR [110.2.215.28 [上級国民]])
2022/11/28(月) 11:58:03.03ID:Dg1YyOhE0289デフォルトの名無しさん (ワッチョイ 194e-WfGi [210.138.216.243])
2022/11/28(月) 13:15:50.86ID:u/1oLUrZ0290デフォルトの名無しさん (ワッチョイ 214b-VSyR [110.2.215.28 [上級国民]])
2022/11/28(月) 14:05:28.49ID:Dg1YyOhE0 >>289
ありがとうございます。
ありがとうございます。
291デフォルトの名無しさん (ワッチョイ 214f-emCW [180.0.191.133])
2022/11/28(月) 16:27:54.36ID:HJ3Js2uA0 const checkNumberString = inputString => {
const inputAry = [...inputString]; // 文字列を配列にする
const [ firstChar, ...restAry ] = inputAry; // 1文字目と2文字目以降に分ける
if ( restAry.length === 0 ) { return false }; // 1文字しかない場合
// 1文字目が、+/- ではない場合
if ( !( firstChar === "+" || firstChar === "-" ) ) { return false };
// 2文字目以降のすべてが、数字かどうか
const res = restAry.every( ( char ) => {
const cp = char.codePointAt(0);
return ( 48 <= cp && cp <= 57 ); // 0〜9
} );
return res
}
const testAry = ['', '+', '-0', '+019', '-9🌕には𩸽'];
const results = testAry.map( (str) => checkNumberString(str) );
console.log( results );
//=> [ false, false, true, true, false ]
const inputAry = [...inputString]; // 文字列を配列にする
const [ firstChar, ...restAry ] = inputAry; // 1文字目と2文字目以降に分ける
if ( restAry.length === 0 ) { return false }; // 1文字しかない場合
// 1文字目が、+/- ではない場合
if ( !( firstChar === "+" || firstChar === "-" ) ) { return false };
// 2文字目以降のすべてが、数字かどうか
const res = restAry.every( ( char ) => {
const cp = char.codePointAt(0);
return ( 48 <= cp && cp <= 57 ); // 0〜9
} );
return res
}
const testAry = ['', '+', '-0', '+019', '-9🌕には𩸽'];
const results = testAry.map( (str) => checkNumberString(str) );
console.log( results );
//=> [ false, false, true, true, false ]
292デフォルトの名無しさん (ワッチョイ 51bd-2eod [220.144.111.164])
2022/11/28(月) 16:54:53.78ID:6qlTLJdd0 >>291
ということを十数文字の文字列で表せる正規表現というのは本当に便利だな
ということを十数文字の文字列で表せる正規表現というのは本当に便利だな
293デフォルトの名無しさん (ワッチョイ 214b-VSyR [110.2.215.28 [上級国民]])
2022/11/28(月) 19:15:12.40ID:Dg1YyOhE0294291 (ワッチョイ 214f-emCW [180.0.191.133])
2022/11/28(月) 19:27:13.32ID:HJ3Js2uA0 Ruby なら、もっと簡単に書ける
def checkNumberString ( inputString )
inputAry = inputString.chars # 文字列を配列にする
return false if inputAry.length < 2 # 2文字未満
firstChar = inputAry.shift # 1文字目を取り除く
case firstChar
when "+", "-" # 処理なし
else
return false # 1文字目が、+/- ではない場合
end
# 2文字目以降のすべてが、数字かどうか
zeroToNine = ( '0'..'9' )
res = inputAry.all? { |char| zeroToNine.include?( char ) }
return res
end
testAry = %W(#{} + -0 +019 🌕には𩸽 -9🌕には𩸽)
#=> ["", "+", "-0", "+019", "🌕には𩸽", "-9🌕には𩸽"]
p results = testAry.map{ |str| checkNumberString( str ) };
#=> [false, false, true, true, false, false]
def checkNumberString ( inputString )
inputAry = inputString.chars # 文字列を配列にする
return false if inputAry.length < 2 # 2文字未満
firstChar = inputAry.shift # 1文字目を取り除く
case firstChar
when "+", "-" # 処理なし
else
return false # 1文字目が、+/- ではない場合
end
# 2文字目以降のすべてが、数字かどうか
zeroToNine = ( '0'..'9' )
res = inputAry.all? { |char| zeroToNine.include?( char ) }
return res
end
testAry = %W(#{} + -0 +019 🌕には𩸽 -9🌕には𩸽)
#=> ["", "+", "-0", "+019", "🌕には𩸽", "-9🌕には𩸽"]
p results = testAry.map{ |str| checkNumberString( str ) };
#=> [false, false, true, true, false, false]
295デフォルトの名無しさん (オッペケ Sr1d-/VpS [126.133.218.226])
2022/11/28(月) 20:48:23.47ID:zNlSyUlFr296デフォルトの名無しさん (ワッチョイ 834b-uvfe [110.2.215.28 [上級国民]])
2022/12/04(日) 21:34:23.67ID:IHBBP8JW0 条件A、B、Cがあってどれか1つがtrueの場合だけ動作させたいのですが、動作させない場合returnするif文はどう書けば一番シンプルなんでしょうか?
A…true、B…false、C…false
A…false、B…true、C…false
A…false、B…fslse、C…ture
の3つの場合だけ動作させます
それ以外をreturnさせるif文です
A…true、B…false、C…false
A…false、B…true、C…false
A…false、B…fslse、C…ture
の3つの場合だけ動作させます
それ以外をreturnさせるif文です
297デフォルトの名無しさん (ワッチョイ 834b-uvfe [110.2.215.28 [上級国民]])
2022/12/04(日) 21:49:59.33ID:IHBBP8JW0 動作させたい3つの場合、それぞれ違う関数にジャンプさせて違う処理をさせたいです。
switch文の方が良いのでしょうか?
それでどれにも当てはまらない場合、defaultでreturnとすれば
switch文の方が良いのでしょうか?
それでどれにも当てはまらない場合、defaultでreturnとすれば
298デフォルトの名無しさん (ワッチョイ 8fbd-hPFt [49.129.241.161])
2022/12/04(日) 21:52:00.92ID:XpkKNYo50 >>296
複数 true は return ってこと?
複数 true は return ってこと?
299デフォルトの名無しさん (ワッチョイ 8f02-Izwu [124.215.170.95])
2022/12/04(日) 21:58:26.26ID:kEkO75NR0 if(!(A or B or C))return 0;
300デフォルトの名無しさん (ワッチョイ 8fbd-hPFt [49.129.241.161])
2022/12/04(日) 21:59:32.16ID:XpkKNYo50 X = (A ? 1 : 0) + (B ? 1 : 0) + (C ? 1 : 0);
if (X != 1) return;
if (A) funcA()
else if (B) funcB()
else funcC();
if (X != 1) return;
if (A) funcA()
else if (B) funcB()
else funcC();
301デフォルトの名無しさん (ワッチョイ 5f01-QZbE [219.204.123.70])
2022/12/04(日) 22:00:38.95ID:S/+N28Tr0 switch((A ? 1 : 0) | (B ? 2 : 0) | (C ? 4 : 0)){
case 1:
// Aの処理
break;
case 2:
// Bの処理
break;
case 4:
// Cの処理
break;
default:
return;
}
case 1:
// Aの処理
break;
case 2:
// Bの処理
break;
case 4:
// Cの処理
break;
default:
return;
}
302デフォルトの名無しさん (ワッチョイ 6f5c-4FAg [61.201.139.113])
2022/12/04(日) 22:13:43.95ID:VmtlSQvx0 if (a + b + c != 1) return
303デフォルトの名無しさん (ワッチョイ 8f02-Izwu [124.215.170.95])
2022/12/04(日) 22:16:21.90ID:kEkO75NR0 flag=true;
if(A and flag)[a();flag=false;]
elseif(B and flag)[b();flag=false;]
elseif(C and flag)[c();flag=false;]
elseif(!(A or B or C) and flag)[return 0;]
else[error();]
if(A and flag)[a();flag=false;]
elseif(B and flag)[b();flag=false;]
elseif(C and flag)[c();flag=false;]
elseif(!(A or B or C) and flag)[return 0;]
else[error();]
304デフォルトの名無しさん (ワッチョイ dfcf-4FAg [153.227.173.254])
2022/12/04(日) 22:21:13.15ID:XVXofR3d0305デフォルトの名無しさん (ワッチョイ fb01-6Epl [114.48.35.209])
2022/12/04(日) 22:24:22.10ID:ppAq3P870 難しいよね
昔はコードを短く、処理負荷を軽くするのかウィザードと呼ばれたけど
今は他人にも自分にも分かりやすく、整備性があるのかとかも大事
昔はコードを短く、処理負荷を軽くするのかウィザードと呼ばれたけど
今は他人にも自分にも分かりやすく、整備性があるのかとかも大事
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で ★2 [ぐれ★]
- 高市のプライドはエベレストより高い。だから、発言を撤回できない [805596214]
- 台湾政党が高市首相「存立危機事態」発言に感謝の書簡「我々の心を強く奮い立たせるものでした」 [834922174]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 【正論】有識者「高市早苗に合理的配慮をしなかった野党が悪い」 [175344491]
- 日経平均、49000円割れ 国賊高市を許すな ★2 [402859164]
- 【悲報】中国を煽り運転に例えたネトウヨさん、完全に論破されてしまう [268718286]
