我正在撰寫一段代碼,它在陣列中隨機長度的亂數中找到前三個偶數。
const getEven = (array) => {
const evenArr = [];
for (let index = 0; index < array.length; index ) {
if (index % 2 != 0) {
evenArr.push(array[index]);
}
}
console.log(evenArr);
};
getEven([1, 2, 3, 4, 5, 6, 7, 8, 9]);
Output = [ 2, 4, 6, 8 ]
我的問題是,一旦找到回圈繼續運行的前三個偶數元素,在找到前三個元素后如何停止它,是否有更有效的方法來執行此操作?
我可以使用過濾器,但決定采用傳統方式并撰寫了一個 for 回圈。
uj5u.com熱心網友回復:
試試這個
if (index % 2 != 0 && evenArr.length<3)
uj5u.com熱心網友回復:
好吧,您可以只添加break具有所需條件的陳述句:
const getEven = (array) => {
const evenArr = [];
for (let index = 0; index < array.length; index ) {
if (index % 2 !== 0) {
evenArr.push(array[index]);
}
if (evenArr.length === 3) {
break;
}
}
console.log(evenArr);
};
getEven([1, 2, 3, 4, 5, 6, 7, 8, 9]);
Output = [ 2, 4, 6, 8 ]
uj5u.com熱心網友回復:
使用您當前的方法,最簡單的更改是將break-statement 添加到您的回圈中:
for (let index = 0; index < array.length; index ) {
if (index % 2 != 0) {
evenArr.push(array[index]);
if (arrray.length >= 3) {
break; // <= this will end the loop
}
}
}
值得一提的是,您的演算法目前正在收集奇數而不是偶數。應該是index % 2 === 0。
uj5u.com熱心網友回復:
那么你可以使用break
if (evenArr.length === 3) {
break;
}
或回傳
if (evenArr.length === 3) {
return;
}
或更好:
if (evenArr.length === 3) {
return evenArr
}
Return 不僅停止回圈,還停止整個函式
const getEven = (array) => {
const evenArr = [];
for (let index = 0; index < array.length; index ) {
if (index % 2 != 0) evenArr.push(array[index]);
if(evenArr.length === 3) return evenArr;
}
return evenArr
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/461281.html
標籤:javascript 数组 for循环
