我有一個變數設定為大約 30 個字符的字串。我使用 .split() 將字串轉換為陣列。現在我正在努力的部分是回圈遍歷我剛剛制作的陣列,增加我設定為變數的計數器,并且變數增加陣列迭代陣列中最后 5 個數字的任何內容?
提前感謝任何可以提供幫助的人!
我在我的函式中試過這個......
let numsArr = [0, 1, 2, 3, ...... ,30]
let numOfInvalidElement = 0;
function() {
for(let i = 0; i < numsArr.length; i ) {
if (numsArr >= 20) {
return numofInvalidElement
}
}
}
uj5u.com熱心網友回復:
您需要繼續檢查以了解回圈何時接近陣列中的最后 5 個值。而且,當您從函式內部的for 回圈回傳時,它會結束函式執行。
let numsArr = [0, 1, 2, 3, ...... ,30]
let numOfInvalidElement = 0;
let isLastFiveNumbers = numsArr.length
function() {
const numsArrLength = numsArr.length
for(let i = 0; i < numsArrLength; i ) {
if (numsArrLength - i <= 5) {
numOfInvalidElement
}
}
}
uj5u.com熱心網友回復:
第一種解決方案:
const numsArr = []
// create the numsArr array with a for loop.
for (let i=0; i<30; i ) numsArr.push(i 1);
// us a for...of loop to iterate numsArr
let numOfInvalidElement = 0;
for(const num of numsArr) {
if (num >= 20) numOfInvalidElement
}
// log the result
console.log(numOfInvalidElement)
// expected output: 11
其他一些解決方案:
const numsArr = []
// create the numsArr array with a for loop.
for (let i=0; i<30; i ) numsArr.push(i 1);
// use a for loop to iterate numsArr:
let result1 = 0;
for (let i=0; i<numsArr.length; i ) if (numsArr[i] >= 20) result1 ;
console.log(`for loop result: ${result1}`);
// use .forEach method to itrate numsArr:
let result2 = 0;
numsArr.forEach(num => (num >= 20) && result2 )
console.log(`.forEach method result: ${result2}`)
// use .filter method to itrate numsArr:
const result3 = numsArr.filter(num => num >= 20).length;
console.log(`.filter method result: ${result3}`)
// using .filter method with {} to itrate numsArr:
// when using array methods like .filter, .map, .some, etc. with {}, you do need to return a value.
const result4 = numsArr.filter(num => {
return num >= 20
}).length;
console.log(`.filter method result: ${result4}`)
uj5u.com熱心網友回復:
return由于該陳述句,您的函式提前終止。正如檔案所指出的:
return 陳述句結束函式執行并指定要回傳給函式呼叫者的值。
根據您的要求:
增加一個我設定為變數的計數器,并且該變數增加了陣列遍歷陣列中最后 5 個數字的任何內容?
不完全確定這意味著什么,也不知道您的條件numsArr >= 20旨在實作什么,因為numsArr它是一個陣列。聽起來您只想查看最后 5 個元素,并且僅在值超過某個值(例如 20)時才執行某些操作:
for(let i = 0; i < numsArr.length; i ) {
// Only check last 5 and increment is exceed threshold value
if (i >= numsArray.length - 5 && numArr[i] >= 20) {
numofInvalidElement ; // Note the removed return
}
}
如果這就是您想要的,那么功能方法可能會更簡潔:
numOfInvalidElements = numsArr.slice(-5).filter(x => x >= 20).length;
請參閱有關slice和filter的檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/532898.html
上一篇:For回圈每月預算程式創建錯誤
