JavaScriptでオブジェクトの値を取得する方法:Object.values()と_.values()の違いを解説
JavaScriptにはObject.values()など、オブジェクトの値を取得するためのメソッドがいくつか用意されています。しかし、これらの標準メソッドでは値を取り出すまでの手順がやや長くなりがちです。そこで便利なのが、JavaScriptライブラリ「Underscore.js」が提供する_.values()メソッドです。このメソッドを使えば、forループを記述することなく、オブジェクトの値を直接取得できます。
Object.values()を使った例
まずは標準メソッドであるObject.values()を使った例です。このメソッドで取得した値を順番に表示するには、for...ofループが必要になります。
コード例
<html>
<body>
<script>
var user = {
name: "Rahim",
designation: "content developer"
};
for (let value of Object.values(user)) {
document.write(value + "</br>");
}
</script>
</body>
</html>
出力結果
Rahim content developer
_.values()を使った例
次に、Underscore.jsの_.values()メソッドを使った例を見てみましょう。こちらはforループが一切不要で、オブジェクトのすべての値を配列として一度に取得できる、シンプルで直感的な方法です。
コード例
<html>
<body>
<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/0.10.0/lodash.min.js"></script>
<script>
var res = JSON.stringify(_.values({"name": 'ElonMusk', age: 47, "Organization": 'Spacex'}));
document.write(res);
</script>
</body>
</html>
出力結果
["ElonMusk",47,"Spacex"]
まとめ
Object.values()はES2017以降で利用できる標準メソッドですが、値を一つずつ処理するにはループの記述が必要です。一方、_.values()を使えば、オブジェクトの全ての値を配列としてまとめて取得でき、コードが大幅に簡潔になります。標準機能だけで完結させたい場合はObject.values()、短いコードで手軽に扱いたい場合は_.values()と、用途に応じて使い分けるのがおすすめです。
-
JavaScriptで配列内の最頻値(最も共通する要素)を取得する方法
繰り返しの値を含むリテラルの配列を受け取り、その中で最も多く出現する要素(最頻値)を配列として返すJavaScript関数を作成する必要があります。2つ以上の要素が同じ回数だけ最も多く現れる場合は、該当するすべての要素を結果の配列に含めなければなりません。実装コード例この処理を実装したコードは以下のとおりです。const arr1 = [a, c, a, b, d, e, f]; const arr2 = [a, c, a, c, d, e, f]; const getMostCommon = arr => { const count = {}; let res = []
-
JavaのJSONObjectからさまざまな型の値を取得する方法
JSONObjectは、名前/値のペアで構成される順序なしのコレクションであり、文字列からテキストを解析して、Map(マップ)のようなオブジェクトを生成します。JavaでJSONを扱う際に広く利用されているorg.jsonライブラリに含まれるこのクラスには、キーに関連付けられた値をさまざまなデータ型として取得するための重要なメソッドが用意されています。 主な値取得メソッドの一覧 getString():指定したキーに関連付けられた文字列(String)の値を取得します。 getInt():指定したキーに関連付けられたint型の値を取得します。 getDouble():指定したキーに関連付けら