2015-05-29 59 views
-1

我想在Lodash/JavaScript中查找一個實用函數,它將數組中的JavaScript對象元素作爲輸入並輸出數組中的重複元素,基本上我的要求如下所示,lodash中的實用函數/ javascript

input = 
{'first': 'Tom', 'last': 'Hanks', 'array': [1,2,3]}; 

output = 
[{first:’Tom’, 'array':[1], ‘last’: ‘Hanks’}, {first:’ Tom’, 'array':[2], ‘last’: ‘Hanks’}, {first:’ Tom’, 'array':[3], ‘last’: ‘Hanks’}]; 

我試圖查看Lodash手冊,但找不到執行此操作的任何函數。如果我們有任何類似於我的期望的效用函數,有人可以告訴我嗎?

我可以寫一段JavaScript代碼,但我正在尋找一種有效的方法。

+1

你'input'和'output'陣列不包含有效的對象,你確定這是數據結構你是從哪裏來的?您輸入的 – Nobita

+0

無效。 {first:'Tom',[1,2,3],'last':'Hanks'}應該是一個有效的對象。 – PPB

+0

感謝Nobita和PPB,我編輯了我原來的帖子 – Cling

回答

1

您可以使用map()at(),並且defaults()得到你需要的東西:

_.map(input.array, function(item, index, coll) { 
    return _.defaults({ array: _.at(coll, index) }, input); 
}); 
0

_.uniq應該做你想做的。

+0

我看到_.uniq返回數組中唯一項目的列表,它不會工作我的場景。 – Cling

+0

您可以創建新的數組,然後從舊數組。 –