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

私的良スレ書庫

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

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

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
751 : Name_Not - 2018/02/17(土) 16:26:59.42 ID:???.net (-2,-30,-30)
for(let [key, value] of Object.entries(test)){
console.log(key + ':' + value);
}
こうするとちょっとPHPっぽい
752 : Name_Not - 2018/02/17(土) 17:13:27.27 ID:???.net (+4,-30,-56)
>>748
for (let v of Object.values(test)) {
console.log(v);
}
とか
Object.values(test).forEach(v => {
console.log(v);
});
753 : Name_Not - 2018/02/17(土) 17:23:12.09 ID:???.net (+3,-30,-35)
こっちのが汎用的だったか
Object.entries(test).forEach(([key, value], index) => {
console.log(key, value, index);
});
754 : Name_Not - 2018/02/17(土) 17:51:17.23 ID:???.net (+3,-30,-56)
なんで標準のJavaScriptを使うと
冗長になるのか教えてほしいものだ。

lodashを使ったほうが短いとか意味分からん
_.forOwn(test, (value, key) => {
 console.log(key + ':' + value);
});
755 : Name_Not - 2018/02/17(土) 18:17:17.64 ID:???.net (+57,+29,-13)
どの言語も普通は標準よりライブラリ使った方が短くならね?
756 : Name_Not - 2018/02/17(土) 18:54:43.59 ID:???.net (+57,+29,-34)
だよなw
いつものlodashくんがスレチ話するためのエクスキューズのつもりなんだろw
757 : Name_Not - 2018/02/17(土) 21:34:02.04 ID:???.net (+52,+24,-20)
自作の関数作ればもっと短くなるよね
はいlodash敗北
758 : Name_Not - 2018/02/17(土) 21:39:19.11 ID:???.net (+36,+8,-16)
ほんとlodashの名前が出るだけで
必死になるなw
759 : Name_Not - 2018/02/17(土) 22:26:40.80 ID:???.net (+4,-30,-16)
for( var key of test )とかfor( var key in test )じゃダメなん?
760 : Name_Not - 2018/02/17(土) 22:58:02.30 ID:???.net (-1,-29,-15)
761 : Name_Not - 2018/02/17(土) 23:23:30.35 ID:???.net (+3,-29,-31)
>>759
前者はそもそもエラーなので論外
後者は普通にあり
entriesやvaluesは使えない環境も多いしね
個人的にはObject.keysを使うことが多いかな
よっぽど大量にループさせるんならfor..in使うけど
762 : Name_Not - 2018/02/17(土) 23:59:58.10 ID:???.net (+57,+29,-17)
使えない環境はあるがけして多くはない
そんなことを言ったら何もできない
いつまでレガシーブラウザを延命させる気なんだ
763 : Name_Not - 2018/02/18(日) 05:22:16.55 ID:???.net (+3,-29,-47)
for..inで十分にできて、key / valuesが key / test[key] になる程度の違い
構造は明示されてて
構造が未知だったり完全に信頼できなかったりしない
javascriptはゴルフ絶対主義なんか
764 : Name_Not - 2018/02/18(日) 06:20:37.10 ID:???.net (+3,-30,-47)
for-inのデメリットは.hasOwnProperties()のチェックを入れるかどうかの問題が発生するから

もちろんオブジェクトにそのチェックが不要だという保証があるなら.hasOwnProperties()で調べる必要はない
765 : Name_Not - 2018/02/18(日) 06:23:06.86 ID:???.net (+58,+29,-18)
>>748を見れば一目瞭然だな
766 : Name_Not - 2018/02/18(日) 06:44:57.56 ID:???.net (-1,-29,-8)
hasOwnPropertiesやっててよかったとか
今までに一度もないなw
767 : Name_Not - 2018/02/18(日) 08:22:54.79 ID:???.net (+3,-30,-58)
for..inは式ではなく文なのがちと煩わしい
とはいえ素のJavaScriptで
Object.values(test).filter(x => x % 2 === 0).map(x => x * 2)
みたく書くと無駄に何度も配列作っちゃうから、そういう意味ではlodashが羨ましい
768 : Name_Not - 2018/02/18(日) 09:25:19.82 ID:???.net (+19,-3,-14)
プロゴルファー?
769 : Name_Not - 2018/02/18(日) 11:31:30.39 ID:???.net (+31,-29,-10)
何度も配列作らなくてもforEach内の処理で十分な場合が多い
filterとかしなくてもif returnで良いんだし
770 : Name_Not - 2018/02/18(日) 12:02:31.01 ID:???.net (+46,+23,+0)
はいはい、俺様専用
771 : Name_Not - 2018/02/18(日) 13:05:05.05 ID:???.net (+98,+29,-44)
>>769
処理分離したいし破壊的代入はなるべく避けたいじゃん?
772 : Name_Not - 2018/02/18(日) 14:10:15.91 ID:???.net (+57,+29,-28)
破壊的代入したって頑張ればできるだろ
ほんの少しづつ頑張ればいいだけだよ
小さいものを積み重ねても大きくはならない
773 : Name_Not - 2018/02/18(日) 14:12:21.99 ID:???.net (+76,+29,-52)
>>771
今回がそもそもfor-inとの対比の話だからな
値を列挙して利用したいというだけだから
配列をどう処理していきたいかみたいな一般論とは話が違う

つまりfor-ループの{}内の置き換えだから、それは素直に考えるとforEachでいいじゃないかと
列挙したい物を連続してフィルタリングしたりする書き方したいか?ということ
774 : Name_Not - 2018/02/18(日) 14:23:07.60 ID:???.net (+57,+29,-13)
そもそも、すべての属性を取得するような、
メタプログラミングみたいな設計自体がおかしい

もし、テストツール以外で、こういう設計をしていたら、おかしいと思え!
775 : Name_Not - 2018/02/18(日) 14:45:12.60 ID:???.net (+44,+26,-1)
いやです
780 : Name_Not - 2018/02/20(火) 18:45:12.12 ID:???.net (-27,-16,-7)
文字列値以外も保存できたんか?
781 : Name_Not - 2018/02/20(火) 19:45:12.02 ID:???.net (-29,-29,-22)
文字列もそうだけどそもそもlocal Storageの使い方大丈夫か?
=使ってるようだが…
http://developer.mozilla.org/ja/docs/Web/API/Window/localStorage
782 : Name_Not - 2018/02/20(火) 20:25:36.91 ID:???.net (+8,-26,+3)
784 : Name_Not - 2018/02/20(火) 21:14:37.44 ID:???.net (+16,-30,-132)
>>782
知らんかった!恥ずかしい

>>783
こんなかんじでどうじゃろ
var storage = localStorage;
//保存
storage.data = document.getElementById("tbodyのID").innerHTML;
//復元
document.getElementById("tbodyのID").innerHTML = storage.data;
785 : Name_Not - 2018/02/20(火) 21:20:22.46 ID:rZ442w9v.net (-20,+29,-4)
>>784
あぁ、それ良いかもですね!
あとで試してみます。
786 : Name_Not - 2018/02/21(水) 07:32:20.17 ID:???.net (+28,-29,-41)
LocalStorage って、HTML を保存するものじゃないだろ

どちらも文字列の、key : value 型だろ
787 : Name_Not - 2018/02/21(水) 08:10:00.57 ID:???.net (-2,-29,-34)
ふーん、じゃ>>784がダメならオブジェクトをJSON.stringifyして保存するのも禁止な。
788 : Name_Not - 2018/02/21(水) 09:33:02.16 ID:???.net (+57,+29,-28)
イベントリスナ無視していいなら
innerHTMLを出し入れしてもただの文字列でしょ、問題はないんじゃね
なんか問題あるっけ
789 : Name_Not - 2018/02/21(水) 11:24:19.58 ID:???.net (+54,+24,-23)
ない。>>786がinnerHTMLの戻り値が文字列だと理解してないだけ。だからバカにされている。
790 : 783 - 2018/02/22(木) 21:10:28.01 ID:???.net (+33,-29,-40)
普通、HTML タグなど、保存しないだろ。
なんで、そんな表示情報を保存するねんw

保存するのは、アプリに必要なデータだろ

key : value
アプリに必要な、データの項目と値
791 : Name_Not - 2018/02/23(金) 00:15:24.12 ID:???.net (+62,+29,-74)
今回はtableの保存だからな
HTMLのままが駄目と言っちゃ
縦横長+配列に分割することになるんだろうけど
そうなったらJSON化もあんまりスマートでないのでIDB使おうかとかも言えるしな

まあ、大きなアプリで沢山入出力するなら
そこ抽象化して丁寧にやるのもいいけど
簡素なものには適当な対応でHTML突っ込んで戻すくらいで良いんじゃないかと思うよ
792 : Name_Not - 2018/02/23(金) 02:35:44.73 ID:???.net (+99,+29,-75)
>>790
で?復元時にはバラバラにしたデータからまた元のhtmlの文字列組み直すのか?それとも一つずつcreateElement繰り返して挿入か?w
どっちにしろバカなんじゃねーのオメー
えんぴつを使わないアメリカかよwww
793 : Name_Not - 2018/02/23(金) 03:19:50.24 ID:???.net (+70,+29,-7)
>>792
でも君プログラムのアーキテクチャについて無知じゃん
794 : Name_Not - 2018/02/23(金) 03:21:44.81 ID:???.net (+3,-30,-205)
っていうか、たったそれだけのことで悩んでどうするんだって気がするけどねw

値からテーブルを作るコードはデータの部分を除いてたったの6行でできる。
(アロー関数を使えばもっと減らせる)

http://jsfiddle.net/1uopxycn/

var data = [
 [{text: 1, colspan:2},{text: 3}],
 [{text: 1},{text: 2},{text: 3}],
 [{text: 1},{text: 2},{text: 3, style: 'color:red'}],
];

var rows = data.map(function(row) {
 return $('<tr/>').append(row.map(function(attrs) {
  return $('<td/>', attrs);
 }));
});
$('#table').append(rows);
795 : Name_Not - 2018/02/23(金) 04:55:47.88 ID:???.net (+57,+29,-10)
スマートかどうか、仕様的に許されたことかどうか、この2つは別問題

1行で終わる話
796 : Name_Not - 2018/02/23(金) 09:06:27.41 ID:???.net (+77,+29,-12)
テーブルの部分をコンポーネントにしてそっちに配列読み込みの機能を持たせるべきだと思う
797 : Name_Not - 2018/02/23(金) 09:14:57.35 ID:???.net (+57,+29,-22)
ネズミ倒すのに戦車が必要とか組織再編が必要とか言い出す兵隊、降格です。
798 : Name_Not - 2018/02/23(金) 09:17:30.10 ID:???.net (+4,-23,-16)
javascriptを使ってネズミを駆除
799 : Name_Not - 2018/02/23(金) 09:22:25.98 ID:???.net (+3,-30,-70)
$('#table').append(data.map(function(row) {
 return $('<tr/>').append(row.map(function(attrs) {
  return $('<td/>', attrs);
 }));
}));
800 : Name_Not - 2018/02/23(金) 09:42:12.16 ID:???.net (+63,+30,-112)
つーかHTMLをそのままデータにすると柔軟性がなくなるよ。
後からHTMLをかえたくなったときとかね

テンプレートにデータを流し込んでビューを作るってことを
やっている人なら理解できると思う

そもそもデータとして参照する時HTMLを解析しなければいけなくなる

仕様的に許されているからOKと考えるんじゃなくて
後々のメンテナンス性なんかも考えらるようでなければダメ
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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