2017-12-15 11 views
0

以下のオブジェクトがあります:プロパティ名にスペースがある場合、オブジェクトの配列から値を取得する方法は?

var obj = {“2017-12-13”: {“prop 1”: “value1”, “prop 2”: “value2”}, “2017-12-14”: {“prop 1”: “item1”, “prop 2”: “item2”}}; 
var arr = Object.values(obj); // Result: [{prop 1: “value1”, prop 2: “value2”}, {prop 1: “item1”, prop 2: “item2”}] 

そこには「」がプロペラ1の周りではないと2を支えるため、結果が間違っている私が値を取得することはできないんだけど、なぜだこれは。あなたはこの問題を解決する方法を知っていますか?

新しいアレイでprop1の値を取得するにはどうすればよいですか? (望ましい結果:var myArr = [value1, item1]

+6

引用符は構文上のものです(構文が間違っています)。実際には問題はありません。 – SLaks

+0

@SLaks返信ありがとうございます。しかし、私はjsonファイルで同様の構文を引用符で囲み、プロパティ名にスペースを入れています。この状況でどのように価値を得るべきですか? – Olga

+0

@Olga - JSONを読み込みます。 JSONを解析します。それでは同じです。 – Quentin

答えて

1

あなたの収入データを処理するために、私はArray.prototype.mapを使用します。

var obj = {"2017-12-13": {"prop 1": "value1", "prop 2": "value2"}, "2017-12-14": {"prop 1": "item1", "prop 2": "item2"}}; 

var result = Object.values(obj).map(o => o["prop 1"]); // ["value1", "item1"] 

また、ブラケットnotaionにMDN Property Accessorsを参照してください。

+1

これはなぜdownvoteを持っているのかわかりません、それはOPが期待している結果です – Damon

+0

@dhiltありがとう!これは動作します。 – Olga

0

あなたの問題を取得することは本当にわからないが、私は答えることをしようとします:あなたが属性を指す最初の項目の値を取得したい場合は、「

var obj = { 
      "2017-12-13": {"prop 1": "value1", "prop 2": "value2"}, 
      "2017-12-14": {"prop 1": "item1", "prop 2": "item2"} 
      }; 
var arr = Object.values(obj); 

:インスタンスごと をあなたはこの配列を持っています小道具1 "のような何かをする必要があります:

console.log (arr[0]["prop 1"]); 
//"value1" 

欲しいものです。

+0

通常、静的インデックスを使用する必要がある場合は、何か間違っている –

+0

@SterlingArcher 実際に彼女の問題がわからないので、私は静的インデックスを例として置いています。彼女が項目にループしたい方法は、彼女に任せられています。あなたが提案したように、あるいは他の方法で.map()を使うことができます。 –

関連する問題