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

私的良スレ書庫

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

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

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
402 : Name_Not - 2017/03/05(日) 04:20:24.24 ID:???.net (+9,-30,-99)
button_element.addEventListener( 'click', function(){
 var list = document.getElementsByTagName('a');
 for( var key in list )
  if( list[key].href === 'http://abcd.com/' )
   list[key].href = 'http://efgh.com/';
}, false);

これだけで終わらんか
403 : Name_Not - 2017/03/05(日) 08:27:53.95 ID:???.net (+36,-29,-51)
setTimeoutの使い方について教えてください

(画面を止めない)sleepが欲しい
xhrの通信待ちで画面を止めたくない

上記以外でsetTimeoutを使いたい・使うべき場面はどんなのがあるでしょうか
404 : Name_Not - 2017/03/05(日) 10:53:20.08 ID:???.net (+7,+29,-33)
>>401
そうじゃない。
IDをつけた要素がグローバルになるのは
正しい仕様だって言う話をしてる
405 : Name_Not - 2017/03/05(日) 10:57:42.47 ID:???.net (+4,-30,-114)
>>402
links使ったほうが短くてすむ。これも正しい仕様だ
あとofなw

buttonElement.addEventListener('click', function() {
 var list = document.links;
 for (let key of list)
  if (list[key].href === 'http://abcd.com/')
   list[key].href = 'http://efgh.com/';
}, false);
406 : Name_Not - 2017/03/05(日) 10:59:09.49 ID:???.net (+61,+28,-2)
>>403
一定時間ごとに何か処理したい
407 : Name_Not - 2017/03/05(日) 11:53:12.99 ID:???.net (+32,-10,-292)
>>404
仕様としては正しいが、問題が複数あるので普通は使わない

・HTML Living Standardを実装していない言語では互換性が取れなくなるのでコードの可搬性が下がる(DOMはJavaScriptだけの仕様ではない)
・変数として使用できない名前がid属性値に存在した場合はグローバル変数化されない
・既存のグローバル変数と名前が衝突する為、グローバル変数を定義する度に全てのid属性値を照らし合わせなければならない。新たなid属性値を作る度に全てのJavaScriptコード上で定義されているグローバル変数名を確認しなければならない。

特に3つ目の欠点が非常に痛い
デザイナとコーダが別々ならグローバル変数名を共有しなければやっていけない
自分一人で全てを管理しているなら自分のスタイルを貫き通せるならいいかもしれないが、複数人でコードを共有するならありえない選択だな
408 : Name_Not - 2017/03/05(日) 12:03:39.85 ID:???.net (+0,-30,-39)
>>396
手順を追ってやるしかなんじゃないかね

1. [1,2,3,4,5] の配列に変換
2. Math.max.apply(null, [0,1,2,3,4,5].filter((v,i) => i % 2 === 0));
409 : Name_Not - 2017/03/05(日) 12:08:49.98 ID:???.net (+50,-30,-62)
>>408
> 1. [1,2,3,4,5] の配列に変換
'12,34 hoge 45,56 foo 8,90'.match(/\d+,\d/g).reduce((n,s) => { return Array.prototype.push.apply(n, s.split(',')), n}, []);
410 : Name_Not - 2017/03/05(日) 12:33:09.72 ID:???.net (+35,-27,-7)
>>409
ひどいコードだな。
reduce使うことが目的になってる感があるw
411 : Name_Not - 2017/03/05(日) 12:37:05.14 ID:???.net (+69,+29,-3)
>>410
あなたならどう書きますか?
412 : Name_Not - 2017/03/05(日) 12:47:18.63 ID:???.net (+82,-30,-112)
>>411
const text = "100,90 aiu 90,50 abc 110,111 iroha 123,456";
const values = text.match(/\d+/g);
const list = [[], []];
values.forEach((v, i) => list[i % 2].push(v));
const max = list.map(item => Math.max(...item));

正規表現のところは頑張れ
413 : Name_Not - 2017/03/05(日) 12:54:36.80 ID:???.net (+4,-29,-84)
正規表現がミスってたので /\d+,\d+/g に訂正

ぶっちゃけ、>>409のコードは俺自身も好きではない
最近は関数型コードこそが美しいという風潮があるようなのでreduceを使ったが、俺が書くときはArray.prototype系で配列を回すことはほとんどない
「スコープを短くしろ」と文句言われるのが煩わしいだけ
414 : Name_Not - 2017/03/05(日) 12:56:11.14 ID:???.net (-1,-29,-8)
reduceで計算した結果以外を返すのは筋が悪い
そんなもんにreduce使うなレベル
415 : Name_Not - 2017/03/05(日) 13:13:51.60 ID:???.net (+3,-30,-93)
window.onload = function() {
document.body.innerHTML = document.body.innerHTML.replace(/あいうえお/g,'かきくけこ');
};

こういうbody全体のテキストからタグからjavascriptとか関係なく一括で置換するコードって
クリックで動作出来るように可能?
416 : Name_Not - 2017/03/05(日) 13:15:41.50 ID:???.net (+33,+15,-2)
そう可能?
417 : Name_Not - 2017/03/05(日) 13:15:57.34 ID:???.net (+30,+12,-2)
どう可能?
419 : Name_Not - 2017/03/05(日) 16:54:21.79 ID:???.net (+100,+29,-10)
>>412
>>398の要件はどこにいった?
ぶっちゃけ、>>409が酷くて>>412が良いとする理由がさっぱり分からんのだが
421 : Name_Not - 2017/03/05(日) 17:25:38.58 ID:???.net (+104,+29,-40)
>>419

> >>398の要件はどこにいった?



> 求められる文字列フォーマットが分からなければ、背景も不明なので現時点で最適解が何なのかは俺にも分からん
422 : Name_Not - 2017/03/05(日) 17:45:10.67 ID:???.net (+4,-30,-54)
>>390
俺ならこう書くな、読みやすさは大事

let tmp,
 reg = /(\d+),(\d+)/g,
 str = '12,34 56,78 90,10'',
 max = [-Infinity, -Infinity];
while(tmp = reg.exec(str)){
 if(max[0] < +tmp[1]) max[0] = +tmp[1];
 if(max[1] < +tmp[2]) max[1] = +tmp[2];
}
423 : Name_Not - 2017/03/05(日) 17:55:23.55 ID:???.net (+91,+29,-7)
空行、空白も入れないレベルで読みやすさ(笑)
424 : Name_Not - 2017/03/05(日) 17:56:55.56 ID:???.net (-1,-29,-14)
parseIntしろよデコ助と思ってしまう
425 : Name_Not - 2017/03/05(日) 17:59:38.42 ID:???.net (+110,+29,-7)
>>423
おい待て、どこに空白や空行入れる部分があるんだよ?
426 : Name_Not - 2017/03/05(日) 18:04:34.19 ID:???.net (+196,-30,-55)
>>425

let tmp,

 reg = /(\d+),(\d+)/g,

 str = '12,34 56,78 90,10'',

 max = [ -Infinity , -Infinity ];

while ( tmp = reg.exec( str ) )
{

 if ( max[ 0 ] < + tmp[ 1 ] ) max[ 0 ] = + tmp[ 1 ];

 if ( max[ 1 ] < + tmp[ 2 ] ) max[ 1 ] = + tmp[ 2 ];

}
427 : Name_Not - 2017/03/05(日) 18:06:17.85 ID:???.net (+72,+29,-7)
>>425
お前の流派次第だな
どこのスタイルを採用してる?
428 : Name_Not - 2017/03/05(日) 18:10:38.72 ID:???.net (+64,+29,-8)
>>426
目が疲れてる時は若干読みやすいのがむかつくw
429 : Name_Not - 2017/03/05(日) 18:16:04.45 ID:???.net (+102,+29,-34)
>>426
スクロール面倒だから無駄な空行やめろ
あと括弧前後の空白もカーソル移動に無駄な労力がいるから邪魔
画面の情報密度下げんな
430 : Name_Not - 2017/03/05(日) 18:21:47.96 ID:???.net (+57,+29,-25)
見やすさは人によるだろ…職場でちゃんとルールを決めてみんなで守るべき
一人で書くならどう書いても構わん
431 : Name_Not - 2017/03/05(日) 18:23:02.69 ID:???.net (+107,+29,-6)
>>429
もしかして←→キーだけで地道にキャレット移動しちゃう系?
432 : Name_Not - 2017/03/05(日) 18:49:18.05 ID:???.net (+75,+29,-45)
>>431
前後スペース空けていたら単語移動したとき必ずスペースの後ろに止まるわけだが、
お前はわざわざバックスペース余分に打ってスペースから削除して書き直すのか?
で、書き直したあとまた余分なスペース打つのか?
馬鹿らしくね?
433 : Name_Not - 2017/03/05(日) 18:51:50.99 ID:???.net (+131,+29,-41)
わざわざ毎回整形してるの?
最初にエディタに登録して、一段落付いたら全体選択→整形ってやらないの?
434 : Name_Not - 2017/03/05(日) 18:56:36.86 ID:???.net (+106,+29,-28)
>>426の状態だと読むのも編集するのも非効率だって話だが、あえてそんな状態に整形する>>433は間違いなく馬鹿
435 : Name_Not - 2017/03/05(日) 19:00:38.22 ID:???.net (+88,+29,-23)
>>434
>>433だけど別に>>426は推奨してないぞ。ってか>>426はネタだろう
どんだけ文盲やねんw
436 : Name_Not - 2017/03/05(日) 19:11:49.68 ID:???.net (+80,-29,-14)
>>435
普通にThree.jsで使われてるルールだけど?
http://github.com/mrdoob/three.js/blob/master/src/utils.js
437 : Name_Not - 2017/03/05(日) 19:16:54.91 ID:???.net (+63,+29,-4)
>>436
実際使ってる人いるのか、すげぇ・・・
でもそれ、例外でしょ
438 : Name_Not - 2017/03/05(日) 19:28:51.93 ID:???.net (-6,-29,+0)
何故かVB6のコード思いだした。
439 : Name_Not - 2017/03/05(日) 19:29:21.18 ID:???.net (+73,+29,-66)
あのねぇ……
これよく中級者くらいが一度はやってみることだけど
行間ってのはエディタ側で調整すりゃいいのよ
HTMLで表示する時もそう

>>436,437
それはThree.jsで使われているルールではない
あくまで行間設定のできないGitHubに出す時に、整形をかけてるだけ
勘違いするな
440 : Name_Not - 2017/03/05(日) 19:33:22.58 ID:???.net (+55,+27,-21)
> あくまで行間設定のできないGitHubに出す時に、整形をかけてるだけ

なんのためか説明してみてくれる?
441 : Name_Not - 2017/03/05(日) 19:37:34.18 ID:???.net (+57,+29,-10)
なんで「何のためかわからないので教えてください」って素直に聞けないんだろう
442 : Name_Not - 2017/03/05(日) 20:19:56.98 ID:???.net (+63,+30,-72)
何のためって、その方が読みやすいと思ったからとしか考えられないが、他に何かあるか?
確かにライブラリの関数のソースを見たいと思って見に来る人に取っては見やすいかもしれない
大前提として、細かく分割されているのと、通しては眺めないという事があるが
import文なんかは詰めて書いてあるしな
443 : Name_Not - 2017/03/05(日) 21:36:39.91 ID:???.net (-2,-30,-11)
script type="text/javascript" id="hoge">

javascriptってこういう風にid付けても効果あんの?
444 : Name_Not - 2017/03/05(日) 22:20:35.90 ID:???.net (+97,+29,-16)
>>421
最適解が分からんのなら他人のコードにケチつけるなよ
445 : Name_Not - 2017/03/05(日) 22:45:07.33 ID:???.net (+4,-27,-15)
リロードせずindex.htmlを再読み込みするのってどうやるの
446 : Name_Not - 2017/03/05(日) 22:49:31.12 ID:???.net (-3,-26,-14)
ajaxでぐぐれ
447 : Name_Not - 2017/03/05(日) 22:49:35.17 ID:???.net (-1,-29,-10)
>>445
XMLHttpRequest, fetch
448 : Name_Not - 2017/03/05(日) 22:50:23.96 ID:???.net (+53,+22,+1)
>>444
正論
449 : Name_Not - 2017/03/06(月) 00:07:21.16 ID:???.net (+0,-30,-28)
var a = [ 1.jpg, 2.jpg, 3.jpg,・・・10.jpg ]
というリストを
a.jpg, b.jpg, c.jpg・・・の画像に置換しても画面上に反映されず
そのまま数字画像が読み込まれるんだけど
450 : Name_Not - 2017/03/06(月) 00:12:48.28 ID:???.net (+30,+5,-13)
>>449
再現可能なコードを出せ
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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