2016-12-19 11 views
1

jsonオブジェクトからすべての値を取得する方法はありますが(キーは気にしません)ループを使用しないで ? (langはJavascriptです)ループを使わずにjavascriptのJSONオブジェクトから値のみを抽出する

+1

なぜループは必要ありませんか?ループがなければ、[これ](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Object/values)を試すことができます – George

+0

ありがとう、少し早いです - 私は数ヶ月これは正解です:-) – Dani

答えて

5

"ループ"の定義方法によって異なります。

Object.keysでプロパティを抽出し、次にmapでプロパティを抽出できます。

...それは本質的にフードの下のループです。

var json = `{ "foo": 1, "bar": 2, "baz": 3 }`; 
 
var obj = JSON.parse(json); 
 
var values = Object.keys(obj).map(function (key) { return obj[key]; }); 
 
console.log(values);
は弱いブラウザのサポートを使用すると、 valuesメソッドを使用することができます。 ES2017で

var json = `{ "foo": 1, "bar": 2, "baz": 3 }`; 
 
var obj = JSON.parse(json); 
 
var values = Object.values(obj); 
 
console.log(values);

+0

ありがとう - それは私が探していたものです。明らかに、ループがフードの下で発生し、ソースをより小さく見せたいだけです。 – Dani

3

私はあなたがObject.values()関数を探していると思いますが、オブジェクトのメソッドを最初のパラメータとして渡すだけです。それでおしまい!

Object.values({something: 'lol'}); 
> ["lol"] 
1

あなたは)(Object.valuesを持っています。あなたはpolyfill it alsoです。

JSONをJavaScriptオブジェクトに変換し、Object.values()を呼び出すだけでよいです。結果は値の配列です。

var obj = JSON.parse(jsonData); 
var result = Object.values(obj); 
+0

私はそれがまだ利用できないと思います...? – Dani

+0

この提案はステージ4にあります。TypescriptまたはBabelを使用すると、それを使用してコードをES5のJavaScriptに送ることができます。 そうでない場合は、ポリフィルをインクルードするとコード内で使用できるはずです。 –

関連する問題