我想看看两个字符串数组是否相等。
Eg:
compare(["abc", "def"], ["def", "abc"])
应该返回true
同样,
compare(["abc", "def"], ["def", "ghi"])
应该返回false
.
做这个的最好方式是什么?
JavaScript 没有 Set 或 Multiset 数据结构(至少没有得到广泛浏览器支持的数据结构),而您通常会使用它来测试两组项目是否相同(无论顺序如何)。所以我建议对数组进行排序并检查它们的内容是否相等。如果您知道数组仅包含字符串,则可以使用简单的相等性检查项目:
function compare(array1, array2) {
if (array1.length != array2.length) {
return false;
}
array1 = array1.slice();
array1.sort();
array2 = array2.slice();
array2.sort();
for (var i = 0; i < array1.length; i++) {
if (array1[i] != array2[i]) {
return false;
}
}
return true;
}
console.log(compare(["abc", "def"], ["def", "abc"])); // true
console.log(compare(["abc", "def"], ["def", "ghi"])); // false
对于更一般的情况,您需要更复杂的平等定义,我建议浏览以下问题的答案这个问题.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)