- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个像下面这样的对象数组
[
{
"id": 27,
"unread_message_count": 0
},
{
"id": 27,
"unread_message_count": 7
}
]
我使用 lodash uniqBy 删除重复项,如下所示
_.uniqBy(data, 'id')
像下面这样删除重复值并返回结果
{id: 27, "unread_message_count": 0}
因为与第一个对象相比,第二个对象在 unread_message_count 中有一些更新的值。我想在 uniq 期间也更新 unread_message_count ,如下所示
let a = [{id: 27, unread_message_count: 0},{id: 27, unread_message_count: 7}];
_.uniqBy(a, 'id')
Output:
{id: 27, unread_message_count: 7}
最佳答案
您可以反转数组,找到唯一值,然后反转回去:
const arr = [{id: 27, unread_message_count: 0},{id: 27, unread_message_count: 7}];
const result = _.reverse(_.uniqBy(_.reverse([...arr]), 'id'));
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.20/lodash.min.js" integrity="sha512-90vH1Z83AJY9DmlWa8WkjkV79yfS2n2Oxhsi2dZbIv0nC4E6m5AbH8Nh156kkM7JePmqD6tcZsfad1ueoaovww==" crossorigin="anonymous"></script>
另一种选择是将数组缩减为 Map,并始终从相同的项目中获取最新的对象:
const arr = [{id: 27, unread_message_count: 0},{id: 27, unread_message_count: 7}];
const result = Array.from(
arr.reduce(
(r, o) => r.set(o.id, o),
new Map()
).values());
console.log(result);
关于javascript - Lodash uniqBy更新最新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64171841/
我有数组: [ [ '245', '0', '0.0100', '245,0,0.01' ], [ '245', '1', '0.0100', '245,1,0.01' ], [ '208',
const uniqBy = (arr, fn) => { let res = [] const hash = new Set() for (let i = 0; i arr.filte
const data = [ {id: "001", failedReason: [1000]}, {id: "001", failedReason: [1001]}, {id: "001", fai
JSFiddle Example let obj = [{'vote':999,'name':'D'}, {'vote':341,'name':'A'},
在这段代码中,我被困在了 _.uniqBy(array,iteratee),this iteratee 可以是函数,也可以是字符串 在哪里放置条件以检查属性的唯一性,因为 itratee 函数可以是任
这是我使用 lodash 的代码 console.log('stackList2', stackList2); console.log('stackList2.length', stackList2.
我是一名优秀的程序员,十分优秀!