javascript - 如何知道两个数组是否具有相同的值

标签 javascript arrays compare

我有这两个数组:一个包含来自 ajax 请求的信息,另一个存储用户单击的按钮。我使用此代码(我填充了示例编号):

var array1 = [2, 4];
var array2 = [4, 2]; //It cames from the user button clicks, so it might be disordered.
array1.sort(); //Sorts both Ajax and user info.
array2.sort();
if (array1==array2) {
    doSomething();
}else{
    doAnotherThing();
}

但它总是给出 false,即使两个数组相同,但名称不同。 (我在 Chrome 的 JS 控制台中检查过)。那么,有什么办法可以知道这两个数组是否包含相同的内容?为什么它给出 false?我如何知道第一个数组中的哪些值不在第二个数组中?

最佳答案

如果您的数组项不是对象 - 例如,如果它们是数字或字符串,您可以比较它们的连接字符串以查看它们是否具有相同的成员,以任何顺序 -

var array1= [10, 6, 19, 16, 14, 15, 2, 9, 5, 3, 4, 13, 8, 7, 1, 12, 18, 11, 20, 17];
var array2= [12, 18, 20, 11, 19, 14, 6, 7, 8, 16, 9, 3, 1, 13, 5, 4, 15, 10, 2, 17];

if(array1.sort().join(',')=== array2.sort().join(',')){
    alert('same members');
}
else alert('not a match');

关于javascript - 如何知道两个数组是否具有相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6229197/

相关文章:

Javascript 世界时区与 GMT 的时差计算器

javascript - 根据条件属性对对象进行排序

Javascript 多数组不工作

javascript - 如何在 Windows Metro 应用程序中使用使用 .Net Framework 4.0 编译的 dll

arrays - 使用一个数组值访问另一个数组元素 Matlab

内存中连续对象的 C# 数组?

java - 如何处理接受字符串或整数的通用 Java 类的比较运算符

java - 查找 1 个字符串中的每个字符是否存在于另一个字符串中,比 O(n^2) 更快

objective-c - 将 NSDictionary 值(id?)转换为 NSString 或 NSNumber 以进行比较

javascript - XMLhttprequest.send 在 PHP 中给出空白数组