gpt4 book ai didi

javascript - 使用 lodash 在 reducer 中进行条件连接

转载 作者:行者123 更新时间:2023-12-01 02:30:52 24 4
gpt4 key购买 nike

我尝试在我的化简器中进行条件连接,我有一个数组对象,并且仅当我的化简器中不存在值时才想连接。如果值(value)存在,就什么都不会发生。我使用 lodash 并尝试使用 _.uniqBy 像这样:

_.uniqBy(arr1.concat(val1), 'id');

这不起作用。

我的 reducer 示例

const arr1 = [{id:1, name:'alex'}, {id:2, name:'taylor'}]
const val1 = {id:1, name:'alex'};

const reducer = {
finalArr: arr1.concat(val1)
}

console.log('Reducer', reducer)

jsFiddle linkk

所需输出:

[{id:1, name:'alex'}, {id:2, name:'taylor'}]

因为数组中已经存在 val1 ({id:1, name:'alex'})。

最佳答案

连接数组并使用 _.uniqBy() 删除重复项效果很好。

示例:

const arr1 = [{id:1, name:'alex'}, {id:2, name:'taylor'}]
const val1 = {id:1, name:'alex'};

const result = _.uniqBy(arr1.concat(val1), 'id');

console.log('Reducer', result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

但是,最好使用 _.unionBy()它从所有给定的数组中按顺序创建一个唯一值的数组:

const arr1 = [{id:1, name:'alex'}, {id:2, name:'taylor'}]
const val1 = {id:1, name:'alex'};

const result = _.unionBy(arr1, val1, 'id');

console.log('Reducer', result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

关于javascript - 使用 lodash 在 reducer 中进行条件连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48318275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com