2015-05-29 53 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

您可以创建新的数组,然后从旧数组。 –