【发布时间】:2015-11-04 08:21:55
【问题描述】:
我正在针对某些字符测试一个数组,我想知道为什么它会在数组中循环 4 次。我只是想循环一次toTest。这是代码和小提琴
var testAgainst = ['and','+',',','&'];
var toTest = ["$ Red Arcane Playing Cards Deck Ellusionist Rare New Sealed $", "Ellusionist Red Arcane Deck - Very Rare - Playing Cards - Magic Tricks- New", "24 HR Sale! Red and White LTD & Red Arcane Playing Cards Ellusionist near mint", "4x Arcane Playing Cards Deck Collection Rare Gold Red + Black White Ellusionist", "Red Arcane Playing Cards by Ellusionist", "24 HR SALE Red Arcane Playing Cards by Ellusionist", "RED ARCANE PLAYING CARDS", "Ellusionist - New/Sealed Red Arcane Playing cards c.2013 - Rare deck"];
for(var i = 0; i < testAgainst.length; i++){
for(var j = 0; j < toTest.length; j++){
if (toTest[j].indexOf(testAgainst[i]) > -1){
console.log('match: ' + toTest[j]);
}else{
console.log('no match ' + toTest[j]);
}
}
}
小提琴:https://jsfiddle.net/bmpgsxb2/4/
为什么循环这么多?
感谢所有为我指明正确方向的人。我应该意识到这是怎么回事。在玩了一段时间后,我想出了这个,它只过滤一次数据并根据它是否符合标准来拆分数据
JSFIDDLE 更新: https://jsfiddle.net/bmpgsxb2/7/
【问题讨论】:
-
你没有忘记代码中的 break 语句吗?
-
因为 testAgainst 里面有 4 个项目?
-
因为您有两个嵌套循环,并且您循环
toTest的次数与testAgain中的项目一样多...!? -
您正在循环通过 testAgainst。对于 testAgainst 中的每个元素,您将通过 toTest 进行完整的循环。
-
当你交换两个“for”语句时可能会更清楚
标签: javascript arrays loops