javascript-避免不使用数组方法的嵌套for循环
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-避免不使用数组方法的嵌套for循环,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1373字,纯文字阅读大概需要2分钟。
内容图文
![javascript-避免不使用数组方法的嵌套for循环](/upload/InfoBanner/zyjiaocheng/670/bedfbd3a086d49649503a73a32f5328f.jpg)
说我有两个对象数组.喜欢
var name = [
{ name : 'john' },
{ name : 'doe' }
]
var name2 = [
{ name : 'john' },
{ name : 'does' }
]
我想检查第一个数组中的名称是否与第二个数组中的名称相同,并返回响应.我将在下面进行
for(var i = 0; i < name.length; i++) {
for(var j = 0; j < name2.length; j++) {
if(name[i].name === name2[j].name) {
console.log('good')
} else {
console.log('bad');
}
}
}
上面的代码将给出以下结果
good
bad
bad
bad
如何在不使用嵌套的for循环的情况下达到相同的结果?
我尝试使用forEach一次遍历.喜欢
name.forEach(function(value, index) {
if(value.name === name2[index].name) {
console.log('good');
}
console.log('bad')
});
但这是行不通的,当它们是不同长度的数组时会产生问题.
我所有的研究都导致使用过滤,映射,归约…方法.我想仅使用for循环来实现此目的.谢谢.
解决方法:
从
I tried using
forEach
. But this doesn’t work and gives issues when they are arrays of different lengths.
我收集到您想比较两个数组,而不考虑其长度.因此,您可以使用Math.max从2个数组中获得最大长度.然后,遍历并检查2个数组在每个索引处是否具有相同的值
条件名称1 [i]&&当较小的数组在指定的索引处没有值时,name2 [i]将检查undefined.
var name1 = [
{ name : 'john' },
{ name : 'doe' }
]
var name2 = [
{ name : 'john' },
{ name : 'does' },
{ name : 'jane' }
]
var maxLength = Math.max(name1.length, name2.length);
for (var i = 0; i < maxLength; i++) {
if (name1[i] && name2[i] && name1[i].name === name2[i].name)
console.log("good")
else
console.log("bad")
}
内容总结
以上是互联网集市为您收集整理的javascript-避免不使用数组方法的嵌套for循环全部内容,希望文章能够帮你解决javascript-避免不使用数组方法的嵌套for循环所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。