javascript - lodash 基于属性的唯一性

标签 javascript lodash unique

我有一系列对象,例如

[{ "name": "Jen", "age":31, "eyecolor": "blue", "hair":"brown"}, 
 { "name": "Jen", "age":32, "eyecolor": "green", "hair":"blonde"}, 
 { "name": "Jules", "age":31, "eyecolor": "blue", "hair":"brown"}, ,
 { "name": "Brian", "age":40, "eyecolor": "blue", "hair":"brown"}]

我需要一个 lodash 表达式,它会产生一组基于一个属性的唯一对象。例如,如果我使用名称,它会给我这三个:
[{ "name": "Jen", "age":31, "eyecolor": "blue", "hair":"brown"}, 
 { "name": "Jules", "age":31, "eyecolor": "blue", "hair":"brown"}, 
 { "name": "Brian", "age":40, "eyecolor": "blue", "hair":"brown"}]

最佳答案

对于 Lodash 版本 4+,请使用 _.uniqBy() :

var arr = [{"name":"Jen","age":31,"eyecolor":"blue","hair":"brown"},{"name":"Jen","age":32,"eyecolor":"green","hair":"blonde"},{"name":"Jules","age":31,"eyecolor":"blue","hair":"brown"},{"name":"Brian","age":40,"eyecolor":"blue","hair":"brown"}];

var unique = _.uniqBy(arr, 'name');

console.log(unique);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>


对于 4 以下的 Lodash 版本,请使用 _.uniq() :

var arr = [{"name":"Jen","age":31,"eyecolor":"blue","hair":"brown"},{"name":"Jen","age":32,"eyecolor":"green","hair":"blonde"},{"name":"Jules","age":31,"eyecolor":"blue","hair":"brown"},{"name":"Brian","age":40,"eyecolor":"blue","hair":"brown"}];

var unique = _.uniq(arr, 'name');

console.log(unique);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.js"></script>

关于javascript - lodash 基于属性的唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33790019/

相关文章:

python - Numpy 数组仅显示唯一行

javascript - 查找数组中的哪个 div 包含 Value,并将它的 Value 返回给一个新的 var

javascript - 处理 JSON 创建一个普通数组而不是 JSON 对象

javascript - 为什么不通过 Bower 链接调用 sortBy 安装 lodash?

javascript - Lodash 标题大小写(每个单词的首字母大写)

Java - 如何构建唯一的对象元组(n 维)?

javascript - 如何在没有可用完整路径的情况下检查本地存储中是否存在项目?

javascript - DockYard Ember Validations 自定义日期验证器

javascript - 使用多样化的大数据创建 CSV

php - 如何获取名字、中间名和姓氏作为用户名,名字之间有一个点,末尾有一个数字,以获得唯一的用户名?