我使用这个JavaScript遍历一个数组并找到一个匹配的数组元素:
var remSize = [],
szString, remData, remIndex, i;
for (i = 0; i < remSize.length; i++) {
// I'm looking for the index i, when the condition is true
remSize[i].size == remData.size ? remIndex = i : remIndex = -1;
}
该数组包含以下“大小”:["34", "36", "38"...]
。
remData.size
是我正在寻找的“大小”(例如"36")。
如果我搜索的大小在索引中,我需要返回索引i
。否则我需要返回-1
。有没有更好的方法来做这件事?
发布于 2017-01-04 14:38:03
改用for of循环,它是ES2015版本的一部分。与forEach不同,我们可以使用return、break和continue。请参阅https://hacks.mozilla.org/2015/04/es6-in-depth-iterators-and-the-for-of-loop/
let arr = [1,2,3,4,5];
for (let ele of arr) {
if (ele > 3) break;
console.log(ele);
}
发布于 2012-03-23 05:19:04
逻辑是不正确的。它总是返回数组中最后一个元素的结果。
remIndex = -1;
for (i = 0; i < remSize.length; i++) {
if (remSize[i].size == remData.size) {
remIndex = i
break;
}
}
发布于 2019-12-02 05:09:34
我知道这有点老了,但是与使用for循环遍历数组相比,使用<array>.indexOf(<element>[, fromIndex])
方法要容易得多
它遍历数组,查找并返回值的第一个索引。如果该值不包含在数组中,则返回-1。
<array>
是要查找的数组,<element>
是要查找的值,[fromIndex]
是开始的索引(默认为0)。
我希望这能帮助你减少代码的大小!
https://stackoverflow.com/questions/9830650
复制相似问题