dev*_*ell 2 javascript ramda.js
比较数组时,equals仅当两个数组以相同顺序保存相同值时,ramda才会返回 true。
我需要一个函数来检查两个数组是否包含完全相同的值,但忽略值出现的顺序。
现在我是这样做的:
const equalLength = (arr1, arr2) => arr1.length === arr2.length
export const equalIgnoreOrder = (arr1, arr2) =>
equalLength(arr1, arr2) && equalLength(arr1, R.union(arr1, arr2))
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更多“开箱即用”的解决方案?
我觉得你的回答没问题。一个稍短的将是
const equalIgnoreOrder = compose(isEmpty, symmetricDifference)
Run Code Online (Sandbox Code Playgroud)
这对我来说感觉更合乎逻辑,因为检查相同的元素更像是一个差异问题而不是联合问题;与涉及 的数学思想相比,它感觉更接近于集合的数学思想length。但这在这里是一个很小的问题。
| 归档时间: |
|
| 查看次数: |
1108 次 |
| 最近记录: |