Dav*_*vid 10 javascript arrays string equality
JavaScript中有两个数组,它们都采用以下格式:
[{'drink':['alcohol', 'soft', 'hot']}, {'fruit':['apple', 'pear']}];
Run Code Online (Sandbox Code Playgroud)
我需要检测两个数组是否相等.如果它们以不同的顺序包含相同的元素,则它们被认为是相等的.我该怎么做?
如果1且2两者都相同,则表示数组相等.
通过真正的数组循环可以实现for(var i=0; i<array.length; i++).
遍历这样的对象的属性可以通过for(var i in object).
function recursiveCompare(obj, reference){
if(obj === reference) return true;
if(obj.constructor !== reference.constructor) return false;
if(obj instanceof Array){
if(obj.length !== reference.length) return false;
for(var i=0, len=obj.length; i<len; i++){
if(typeof obj[i] == "object" && typeof reference[j] == "object"){
if(!recursiveCompare(obj[i], reference[i])) return false;
}
else if(obj[i] !== reference[i]) return false;
}
}
else {
var objListCounter = 0;
var refListCounter = 0;
for(var i in obj){
objListCounter++;
if(typeof obj[i] == "object" && typeof reference[i] == "object"){
if(!recursiveCompare(obj[i], reference[i])) return false;
}
else if(obj[i] !== reference[i]) return false;
}
for(var i in reference) refListCounter++;
if(objListCounter !== refListCounter) return false;
}
return true; //Every object and array is equal
}
Run Code Online (Sandbox Code Playgroud)
如果您不理解该功能,请随时在评论中请求解释.
Jav*_*ens -1
这回答了你的问题了吗? JavaScript 如何检查两个数组是否相等?
var equal = array1.compareArrays(array2);
Run Code Online (Sandbox Code Playgroud)