2016-08-17 6 views
1

を使用してキーで別のオブジェクトのグループからオブジェクトを作成します。 :は、所定の構造についてlodash

{ 
'assetName1':'asset_string_en.jpg', 
'assetName2':'asset_string2_en.jpg' 
} 

{ 
'assetName1':'asset_string_ch.jpg', 
'assetName2':'asset_string2_ch.jpg' 
} 

ロダッシュでどうすればいいですか?

+0

を私は 'ru'があなたの第二の資産のタイプミスであると仮定?あるいは、 'ch'と' ru'が合併したがっていますか? – Pevara

+0

ええ、それはタイプミスでも、キーは['ru'、 'ch'、 'en']になる可能性があります – truedrog

答えて

1

プレーン・ジャバスクリプトでは、結果セットを作成するためにいくつかのループを使用できます。 ES6脂肪矢印記法使用

var data = [{ file: [{ en: 'asset_string_en.jpg' }, { ch: 'assets_string_ch.jpg' }], assetName: 'assetName1' }, { file: [{ en: 'asset_string2_en.jpg' }, { ru: 'asset_string2_ch.jpg' }], assetName: 'assetName2' }], 
 
    result = []; 
 

 
data.forEach(function (a) { 
 
    a.file.forEach(function (b, i) { 
 
     Object.keys(b).forEach(function (k) { 
 
      result[i] = result[i] || {}; 
 
      result[i][a.assetName] = b[k]; 
 
     }); 
 
    }); 
 
}); 
 

 
console.log(result);

1

var arr = [{ 
    file: [{ 
     en: 'asset_string_en.jpg' 
    }, { 
     ch: 'assets_string_ch.jpg' 
    }], 

    assetName: 'assetName1' 
}, { 
    file: [{ 
     en: 'asset_string2_en.jpg' 
    }, { 
     ru: 'asset_string2_ch.jpg' 
    }], 

    assetName: 'assetName2' 
}]; 

_.reduce(arr, (answer, obj)=> {answer[_.get(obj, 'file[0].en')] = _.get(arr[0], 'file[1].ch'); return answer}, {}); 
関連する問題