Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript通过值而不是引用来比较数组_Javascript_Arrays_Equals - Fatal编程技术网

javascript通过值而不是引用来比较数组

javascript通过值而不是引用来比较数组,javascript,arrays,equals,Javascript,Arrays,Equals,我必须比较JS中的两种类型的数组 var数组1=[ 无效的 “奇迹”, "2.0.17", { 名称:“绿巨人”, 颜色:“绿色”, 年龄:31岁, 能力:[“撞车”,“粉碎”] }, { 姓名:“铁人”, 年龄:35岁, 还活着:真的 }, [“美国船长”、“雷神”、“奇迹船长”] ]; 变量array2=[ 无效的 “奇迹”, "2.0.17", { 名称:“绿巨人”, 颜色:“绿色”, 年龄:31岁, 能力:[“撞车”,“粉碎”] }, { 姓名:“铁人”, 年龄:35岁, 还活着:真的

我必须比较JS中的两种类型的数组

var数组1=[
无效的
“奇迹”,
"2.0.17",
{
名称:“绿巨人”,
颜色:“绿色”,
年龄:31岁,
能力:[“撞车”,“粉碎”]
},
{
姓名:“铁人”,
年龄:35岁,
还活着:真的
},
[“美国船长”、“雷神”、“奇迹船长”]
];
变量array2=[
无效的
“奇迹”,
"2.0.17",
{
名称:“绿巨人”,
颜色:“绿色”,
年龄:31岁,
能力:[“撞车”,“粉碎”]
},
{
姓名:“铁人”,
年龄:35岁,
还活着:真的
},
[“美国船长”、“雷神”、“奇迹船长”]
];
函数deepEquals(array1,array2){
//检查参数是否为数组
if(!Array.isArray(array1)&&&!Array.isArray(array2)){
log(“参数不是数组”+“\n”)
返回false;
}
//按长度检查阵列
if(array1.length!==array2.length){
log(“数组长度不同”+“\n”);
返回false;
}否则{
对于(变量i=0;i”+
o1[propName]+“和->”+o2[propName]);
返回false;
}
}
}

log(deepEquals(array1,array2))解决什么问题,数组显然不一样?第二个数组samevar array2=[null,“惊奇”,“2.0.17”,{name:“绿巨人”,color:“绿色”,年龄:31岁,能力:[“崩溃”,“粉碎”]},{name:“钢铁侠”,年龄:35岁,仍然活着:真的},[“美国队长”,“雷神”,“惊奇船长”];在这个问题中,第二个数组包含
能力:[“crash”]
而不是
能力:[“crash”,“smash”]
当函数尝试比较将数组作为属性能力的对象时:[“crash”,“smash”]如果相同-它会查看不具有值的链接解决什么问题,阵型明显不同?第二个阵型samevar array2=[null,“惊奇”,“2.0.17”,{名字:“绿巨人”,颜色:“绿色”,年龄:31岁,能力:[“撞车”,“粉碎”]},{名字:“铁人”,年龄:35岁,还活着:真的},[“美国队长”,“雷神”,“惊奇船长”]];在问题中,第二个数组包含
能力:[“crash”]
而不是
能力:[“crash”,“smash”]
当函数尝试比较将数组作为属性能力的对象时:[“crash”,“smash”]如果相同-它查看的是链接而不是值