我尝试在我的reducer中有条件地连接,我有一个数组对象,我想只有在我的reducer中不存在值时才连接。
如果存在价值,则不会发生任
我使用lodash,我尝试使用_.uniqBy
这样:
_.uniqBy(arr1.concat(val1), 'id');
这不起作用......
必需的输出:
[{id:1, name:'alex'}, {id:2, name:'taylor'}]
因为数组中已存在val1({id:1,name:'alex'}}。
答案 0 :(得分:1)
我已经尝试过,你做了什么,它工作得很好。
你也可以试试这个,
.uniqBy( .concat(arr1,val1),'id')
答案 1 :(得分:1)
连接数组,并使用_.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>
&#13;
但是,最好使用_.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);
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
&#13;