
いつもお世話になっています。
配列から任意の要素を抽出するにはfilter()で簡単にできますが、
これと同じようにオブジェクトから任意のプロパティを抽出するにはどうすれば良いですか。
例えば、次のようなデータがあって、
勇者のレベルが上がった時に、その時点で覚えられる呪文を全部取得する最も簡単な方法はなんですか。
呪文 = {
ホイミ: {mp: 3, 覚えるレベル: {勇者: 5, 僧侶: 1},
ルーラ: {mp: 8, 覚えるレベル: {勇者: 8, 魔女: 15}
}
パーティー = [
勇者: {レベル: 1, 呪文 = []},
魔女: {レベル: 1, 呪文 = []}
]
No.1ベストアンサー
- 回答日時:
for (職 in パーティ) {
_ 位 = パーティ[職].レベル
_ 会得 = []
_ for (名 in 呪文) {
_ _ if (呪文[名].覚えるレベル[職] <= 位) {
_ _ _ 会得.add(名)
_ _ }
_ }
_ パーティー[職].呪文 = 会得
}
参考)
https://developer.mozilla.org/ja/docs/Web/JavaSc …
もっと厳密にやるならば
https://developer.mozilla.org/ja/docs/Web/JavaSc …
https://developer.mozilla.org/ja/docs/Web/JavaSc …
ありがとうございます^^;
改めて見ると私の質問、構文エラーがひどい。。。
ご回答の_は、読みやすくするための単なる字下げ、会得.add(名)は、会得.push(名)と読み替えました。
このコードで満足する結果が得られました。
察するにオブジェクトには、配列のfilter()のような便利なメソッドがないので、filter()を使いたいなら、あらかじめObject.keys()や.entries()で配列を作るという手順が必要と認識しました。
さらに調べますと、値だけ取ってくるObject.values()を知り、
Object.values().filter()でオブジェクトから任意のプロパティ値を全部取ってくる事ができました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スマホ上で、左右スワイプで次...
-
オブジェクト配列の各メンバを...
-
タグを教えてください。
-
ラジオボタンを複数選択したと...
-
jsで質問です。 formをsubmitし...
-
2025年相性がいい人のサイトの...
-
CookieをWebStoeageに変える
-
Adobe acrobat proでフォームを...
-
Outlookのアカウントがあるとメ...
-
jqueryのselect2で検索欄の文字...
-
<tr>指定した表の行要素をボ...
-
食材の期限を管理するためにGAS...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
-
<div>のタッチ状態を維持したま...
-
jQueryでシンセサイザーを作っ...
-
プログラミング 学習
-
HTMLでサブフレームから親のス...
-
ジャバスクリプトについて。
-
プログラムについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jspからjavascriptの変数引継ぎ
-
二次元配列を使って順位をだす...
-
C#テキストボックスの文字を配...
-
同じIDで定義した要素の配列を...
-
配列の格納
-
javascriptを用いて作成された...
-
splitで複数のキーワードで分割...
-
Perlの配列をJavaScriptに渡せ...
-
setTimeoutで関数に渡した配列...
-
JavaScriptの多次元配列(かつ...
-
Javaについて質問です。 要素数...
-
Javascript 配列の使い方について
-
【Google Apps Script】コード...
-
javascriptの引数と戻り値につ...
-
JSON.parse取得結果を必ずJavaS...
-
ページ内のみの検索窓(?)
-
【急ぎ】javascriptで、特定の...
-
JavaScript初心者です。繰り返...
-
(google apps script)スプレ...
-
助けてください‼︎ javascriptで...
おすすめ情報