0

マイナーな問題。コレクションを持っています

var allnames = {
    'names': 
     [
         { 'name': [ {'surname': 'moe'}, {'nickname': 'moose' } ] },
         { 'name': [ {'surname':'larry'}, {'nickname': 'lark' } ] }
     ]
};

'surname'と のそれぞれにアクセス/フェッチしたい'nickname'

運のないさまざまなオプションを試しました(例_.each/ _.map)。

この分野で経験のある人はいますか?

4

2 に答える 2

5

このスニペットは、そこにある構造を操作しやすいものに変えます。

 var names = _.map( allnames.names, function(n){
    // n is an array with each object having one property; either a surname or a nickname
    return _.reduce(n.name, function(memo,part){ return _.extend(memo,part); }, {})
 });

ここで、names はオブジェクトの配列で、各オブジェクトには姓とニックネームがあります。

[ { surname: 'moe', nickname: 'moose' }, { surname: 'larry', nickname: 'lark' } ]

その構造を取得したら、その配列を操作して必要なものを抽出するのは簡単です。たとえば、すべての姓を取得します。

var surnames = _.pluck(names, 'surname');
var nicknames = _.pluck(names, 'nickname');
于 2013-09-29T11:21:29.490 に答える