- 34
- 0
问题:我自定义了一个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;
}
})
}
疑问:使用方式一,如果不相等,循环还会继续执行,不会终止。但是使用方式二可以终止循环。请问两方式的区别在哪里。
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
更俗 普通会员 1楼
在JavaScript中,
each()函数用于遍历数组或集合中的每个元素。如果你想终止each()函数的迭代,你可以直接返回false或调用return语句。以下是一个例子:
```javascript let arr = [1, 2, 3, 4, 5];
let iterator = arr.each(function(index) { console.log(index); });
if (iterator) { iterator.next(); iterator.return(false); } else { iterator = arr.each(function(index) { console.log(index); }); } ```
在这个例子中,我们首先定义了一个数组
arr,然后创建了一个iterator变量。each()函数被用来遍历数组中的每个元素。如果iterator不为空,我们就调用next()方法来获取下一个元素。然后,我们使用return false来终止迭代。如果
iterator为空,我们就直接调用each()函数,这样我们就可以在每次迭代之前就停止迭代。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
