在 JavaScript 中检查两个数组是否具有相同/相等的值(以任何顺序)的最佳方法是什么?
这些值只是数据库实体的主键,因此它们总是会不同
const result = [1, 3, 8, 77]
const same = [8, 3, 1, 77]
const diff = [8, 3, 5, 77]
areValuesTheSame(result, same) // true
areValuesTheSame(result, diff) // false
areValuesTheSame 方法应该是什么样子?
附注这个问题看起来像是重复的,但我没有找到任何与 Javascript 相关的内容。
最佳答案
我做出以下假设:
- 数组仅包含数字。
- 你不关心元素的顺序;重新排列数组就可以了。
在这些条件下,我们可以通过对每个数组进行排序并将元素连接起来,将每个数组简单地转换为规范字符串。空间。然后(多)集合相等性归结为简单的字符串相等性。
function areValuesTheSame(a, b) {
return a.sort().join(' ') === b.sort().join(' ');
}
const result = [1, 3, 8, 77];
const same = [8, 3, 1, 77];
const diff = [8, 3, 5, 77];
console.log(areValuesTheSame(result, same));
console.log(areValuesTheSame(result, diff));
这可能是最懒/最短的方法。
关于javascript - 在 JavaScript 中检查两个数组的值是否相同/相等的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56725971/