Underscore.js,根据键值删除对象数组中的重复项

6 javascript arrays object duplicates underscore.js

我有以下JS数组:

var myArray = [{name:"Bob",b:"text2",c:true},
               {name:"Tom",b:"text2",c:true},
               {name:"Adam",b:"text2",c:true},
               {name:"Tom",b:"text2",c:true},
               {name:"Bob",b:"text2",c:true}
               ];
Run Code Online (Sandbox Code Playgroud)

我想消除名称值重复的索引并重新创建一个具有不同名称的新数组,例如:

var mySubArray = [{name:"Bob",b:"text2",c:true},
                  {name:"Tom",b:"text2",c:true},
                  {name:"Adam",b:"text2",c:true},
                 ];
Run Code Online (Sandbox Code Playgroud)

如您所见,我删除了"Bob"和"Tom",仅留下3个不同的名称.这是否可以使用Underscore?怎么样?

nik*_*shr 24

正如@Gruff Bunny在评论中所指出的那样,使用_.uniq自定义转换,这样的功能_.property('name')可以很好地执行'name'

var mySubArray = _.uniq(myArray, 'name');
Run Code Online (Sandbox Code Playgroud)

和演示http://jsfiddle.net/nikoshr/02ugrbzr/

  • 并删除第二个参数,只留下_.uniq(myArray,'name') - 只是看了下划线源 (2认同)
  • 请注意lodash,它是:`_.uniqBy(myArray,'name')` (2认同)