javascript - UnionBy 使用 ID 和 update_date 大于
问题描述
我正在使用lodash
,我需要帮助来使用 ID 统一两个数组,但仅当 update_date 大于其他对象时才更新第二个数组。
例子:
第一个数组:
[
{
id:xpto
name:test
update_date:1519211809934 //Because I`m using Date.now()
},
{
id:testes
name:nameTest
update_date:1519211809934 //Because I`m using Date.now()
}
]
第二个数组:
[
{
id:xpto
name:test
update_date:1519211809934 //Because I`m using Date.now()
}
]
我知道,如果我使用_unionBy(array1, array2, id)
第一个替换第二个,但是,只有当 update_date 大于另一个对象时,我才能添加一个条件来统一?
谢谢你的帮助!
解决方案
用于_.unionWith()
检查id
两个对象的 是否相同,以及update_date
第一个数组项的 (a
)是否大于第二个数组项的 (b
)。
const array1 = [{"id":"xpto","name":"test","update_date":1519211809934},{"id":"testes","name":"nameTest","update_date":1519211809934}]
const array2 = [{"id":"xpto","name":"test","update_date":1519211809934}, {"id":"testes","name":"test","update_date":1}]
const result = _.unionWith(array1, array2, (a, b) =>
a.id === b.id && a.update_date < b.update_date
)
console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>
推荐阅读
- opengl - 平面网格上阴影体积的三角形邻接
- nlp - 使用 R 中的“tm”库将元数据添加到 VectorSource 语料库
- windows - Kotlin JS Client 和 JVM Server 构建 webpack SyntaxError
- javascript - 创建一个简单的多维对象数组并分配给 cookie
- cakephp - CakePHP crontab intl
- c# - Console doesn't write any value
- wikipedia - 维基媒体图片说明
- excel - 通过数组模拟 AdvancedFilter CriteriaRange 对象
- python - 在 Alpine Edge 中安装 py[2]-numpy(Alpine 3.10 是最新的并且具有 py[2]-numpy)
- python - 如何为 tf.layers.Conv3D 提供输入层?