【发布时间】:2019-11-02 16:53:57
【问题描述】:
我创建了这个函数,在这个社区的一些帮助下,我想知道我的 if 语句是否可以缩短或改进,因为我还是 JS 的新手,改进这个函数可以让我接触到新的知识。
请看下面的代码:
let jo = [1,2,3,5,6]
let ji = [1,2,3,5,4]
const checker = (arr1, arr2) => {
return arr1.every(num => arr2.includes(num)) == false &&
arr2.every(num => arr1.includes(num)) == false ?
Array.from(new Set(arr1.filter(x => !new Set(arr2).has(x))))
.concat(Array.from(new Set(arr2.filter(x => !new Set(arr1).has(x))))) :
arr1.every(num => arr2.includes(num)) == false?
Array.from(new Set(arr1.filter(x => !new Set(arr2).has(x)))) :
arr2.every(num => arr1.includes(num)) == false ?
Array.from(new Set(arr2.filter(x => !new Set(arr1).has(x)))) :
"no discrepancies"
}
console.log(checker(jo, ji));
【问题讨论】:
-
let difference = arrA .filter(x => !arrB.includes(x)) .concat(arrB.filter(x => !arrA.includes(x))); -
@Prune 虽然这可能是未来关于 CR 的话题,但请不要以 CR 站点的存在作为关闭问题的理由。评估请求并使用太宽泛、主要基于意见等原因。然后您可以向 OP 提及它可以在 Code Review 上发布(如果是) on-topic。请参阅this answer to A guide to Code Review for Stack Overflow users 中的你不应该做的事情部分
-
@SᴀᴍOnᴇᴌᴀ:谢谢!我已经有一年多没有阅读 CR 标准了。很抱歉,感谢您的更新。
标签: javascript arrays algorithm