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