【解決済】JSキレイに書けないか質問

hkaru
記事: 29
登録日時: 2021年3月21日(日) 13:37

Re: JSキレイに書けないか質問

投稿記事 by hkaru »

Plasma Dark様、回答ありがとうございます!
ところで、コードをキレイに書くことの目的ははっきりしているでしょうか。

きれいなコードそのものを目的にしてしまう人もいますが、たいていの場合、目的は明日(あるいは1週間後、1ヶ月後、もしかしたら1年後)の自分が迷わず読めるコードにすることです。
そして、それにはだいぶ書き手の好みが反映されます。
私は今回のような例であれば、コードの横幅を考えて、変数を作ってしまうことが多いですね。
確かに、後から読む分には横幅などを考えれば一旦変数に入れるべきですね・・・
自分が後で見やすいように、というのを意識してみます。
目下気になるのは
- .note に直接数値を入力したままで良いのか(他のmetaタグを使いたくならないか?)
- 敵の情報はDBから引いたもので良いのか(ステートなどで被ダメージ倍率が変化したりしないか?)
辺りですが、仕様検討中だったらすみません。気にしないでください。
ツクール歴は3か月程度で今は手探りで触っている状態なので、仕様等はかなりふわふわしている状態です。
(noteのmetaタグという概念も今知りました)
本開発?段階に入るときにもう少し詰めていくと思いますので、今は参考レベルに気にさせていただきます!
hkaru
記事: 29
登録日時: 2021年3月21日(日) 13:37

Re: JSキレイに書けないか質問

投稿記事 by hkaru »

chro様、回答ありがとうございます。

reduceメソッド、存在は知っていたのですがとっつきにくく、敬遠していました・・・
今の自分のレベルでは後で見返した時にもちんぷんかんぷんな事になりかねないので、
教えていただいた手前申し訳ないですが、今回は愚直に書こうと思います・・・

即時実行関数式などは、今後役に立つと思いますので、しっかり読んで勉強しておきます!
hkaru
記事: 29
登録日時: 2021年3月21日(日) 13:37

Re: JSキレイに書けないか質問

投稿記事 by hkaru »

奏ねこま様、回答ありがとうございます。

コード: 全て選択

var x = ($gameActors.actor(1).equips()[0] || { note: 1}).note;
 
2つ目は論理和( || )の特性を利用した書き方です。
装備の有無によって論理和の左側を使うか右側を使うかが変わります。

装備があるとき: ($gameActors.actor(1).equips()[0]).note
装備がないとき: ({ note: 1 }).note

https://developer.mozilla.org/ja/docs/W ... Logical_OR
ここの「解説」「短絡評価」「例」を一通り読んでみてください。
なるほど、値が
null
NaN
0
空文字列 ("" または '' または ``)
undefined
以外の時はTrueになるのですね。
True/Falseの判定は条件式にのみ判断されるものだと勘違いしていました・・・

~~{ note: 1}).note
の部分は無理やり{note: 1}のハッシュを作ってnoteキーの値を取得させてるわけですね

勉強になりました。
ありがとうございます!
hkaru
記事: 29
登録日時: 2021年3月21日(日) 13:37

Re: JSキレイに書けないか質問

投稿記事 by hkaru »

皆様、親切にご回答いただきありがとうございます。
いろいろな記述方法について学べて大変満足です。
一旦解決済みということにさせていただきます。

「こんな書き方もあるよ!」な意見があればぜひ聞いてみたいので、何かあれば引き続き回答いただければと思います。
ありがとうございました!
返信する

“MZ:質問”に戻る