问题:我自定义了一个each迭代函数,想比较两个数组是否一致。如果遍历过程中发现不一样,则退出循环。如何退出循环现在有些疑问。
代码:
/*
自己实现迭代器
*/
const each = function(arr,callback){
for(var i=0;i<arr.length;i++){
callback.call(arr[i],i,arr[i]);
}
}
/*
比较两数组是否一样 -----方式一
*/
const compare = function(arr1,arr2){
if(arr1.length !== arr2.length){
console.log("两数组长度不一致");
return;
}
each(arr1,function(index,item){
if(item !== arr2[index]){
console.log("两数组不一致");
return;
}
})
}
/*
比较两数组是否一样-----方式二
*/
const compare = function(arr1,arr2){
if(arr1.length !== arr2.length){
console.log("两数组长度不一致");
return;
}
var breaked = false;
each(arr1,function(index,item){
if(breaked){
return;
}
if(item !== arr2[index]){
console.log("两数组不一致");
breaked = true;
}
})
}
疑问:使用方式一,如果不相等,循环还会继续执行,不会终止。但是使用方式二可以终止循环。请问两方式的区别在哪里。
幕布斯1329279
幕布斯1329279
幕布斯1329279
幕布斯1329279
相关分类