gpt4 book ai didi

javascript - 删除数组中所有重复项和未定义项。 Ramda.js

转载 作者:行者123 更新时间:2023-12-01 00:19:22 24 4
gpt4 key购买 nike

我有这样的数据结构:

{
'123': [1,1,3,2,undefined],
'321': [3,3,3,2,undefined,undefined],
'425': [null,2,2,4,2,null,null]
}

我想将项目添加到组数组中,然后检查是否存在未定义或重复项。
我也有一个解决方案,但我认为它还不够好:

check-is-nil.js

const checkIsNil = (groupId, data) => {
return over(lensProp(groupId), pipe(reject(isNil),uniq), data);
}

add-to-group.js

const addToGroup = (groupId, newObj, data) => {
return over(lensProp(groupId), append(newObj), data);
};

使用:checkIsNil('123', addToGroup('123', 1, data))
结果:

{
'123': [1,3,2],
'321': [3,2],
'425': [2,4]
}

最佳答案

reject is nil 应该可以完成这项工作,如果您想保留 null,您最终可以使用 value => value === undefined值。

const clean = R.map(
R.pipe(R.reject(R.isNil), R.uniq),
);

const data = {
'123': [1,1,3,2,undefined],
'321': [3,3,3,2,undefined,undefined],
'425': [null,2,2,4,2,null,null]
};


console.log(
clean(data),
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.js" integrity="sha256-xB25ljGZ7K2VXnq087unEnoVhvTosWWtqXB4tAtZmHU=" crossorigin="anonymous"></script>

关于javascript - 删除数组中所有重复项和未定义项。 Ramda.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59546805/

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