2017-07-09 7 views
0

私は、オブジェクトのキーとしてIDをマッピングしjsonオブジェクトからどのように範囲のキーを返すことができますか?

'1': { 
    "userId": 1, 
    "id": 1, 
    "title": "sunt aut facere repellat", 
    "body": "quia et suscipit\nsuscipit" 
} 

JsonPlaceholderのAPIから次のように構造化JSONデータを持っているし、今戻したい変更HTTP応答からオブジェクト「1」から「10」を言います上に示しました。

は私がlodash _.pick()使用してみました:

_pick(object, ['1', '10']); 

をしかし、それは唯一の '10' のすべてのヘルプは感謝を高く評価され

を通じて '1' の代わりにオブジェクト '1' と '10' を返します。

答えて

0

あなたはそれらを配列に入れてフィルタリングすることを考えましたか?

let data = [ 
 
    { id: 1 }, { id: 2 }, { id: 11 } 
 
]; 
 

 
let filtered = data.filter(e => { return e.id >= 1 && e.id <= 10 }); 
 

 
console.dir(data); 
 
console.dir(filtered);

あなたが最初の値を抽出し、このような何かすることはできませんし、多分、JSONオブジェクトに彼らと立ち往生している場合:

let json = { 
 
    '1': { 
 
     "userId": 1, 
 
     "id": 1, 
 
     "title": "sunt aut facere repellat", 
 
     "body": "quia et suscipit\nsuscipit" 
 
     }, 
 
    '10': { 
 
     "userId": 10, 
 
     "id": 10, 
 
     "title": "sunt aut facere repellat", 
 
     "body": "quia et suscipit\nsuscipit" 
 
     }, 
 
    '11': { 
 
     "userId": 11, 
 
     "id": 11, 
 
     "title": "sunt aut facere repellat", 
 
     "body": "quia et suscipit\nsuscipit" 
 
     } 
 
}; 
 

 
var filtered = 
 
    Object 
 
    .keys(json).map(key => json[key]) 
 
    .filter(val => val.id >= 1 && val.id <= 10); 
 

 
console.dir(json); 
 
console.dir(filtered);

+0

これはいいですが、データ配列に変更されたレスポンスオブジェクトを挿入しました。 '。私は一つのオブジェクトを内部に持つ配列を得ることは驚きではありません。しかし、オブジェクトのオブジェクトを配列にマップすると、どのように表示することができますか? – Mabloq

+0

@Mabloqうまくいけば私の更新された答えはあなたのニーズに合っています。 – Mike

+0

ありがとう!これは私の解決策の「鍵」でした! .....おしゃべりして申し訳ありません、あなたの素晴らしい! – Mabloq

0

あなたはすでにlodashを使用しているので、整数の配列を作成するためにrangeを使用するだけでなく、それを文字列に変換してください。

_.pick(object, _.range(1,10).map(_.toString)); 
関連する問題