簡體   English   中英

為什么此代碼僅在某些JS執行程序中有效?

[英]Why does this code only work in certain JS executors?

此代碼采用整數,並返回存在的1的數量。

 function countOnes(i) { let str = i.toString(); let ones = 0; for(let x = 0; x < i.length; x++) { if(str.charAt(x) === '1') ones++; } return ones; } console.log(countOnes(111000)); 

但是它似乎只在某些JavaScript執行程序中起作用。 如果將此代碼輸入到p5.j​​sMozilla MDN中 ,我將收到所需的輸出3

但是,如果我在瀏覽器和其他一些網站中使用控制台進行模擬,則每個給定值都將返回0

為什么會這樣呢?

  1. 你不能循環上i.length, 還是它的一個“數字”類型,你應該在“str.length”循環來代替。
  2. 你最好給更有意義的名字...... 應該是NUM,STR應該是numStr, 那些應該會適得其反

嘗試這個:

function countOnes(num) {
    var counter = 0;
    var numsArray = Array.from((num + ''))
    numsArray.forEach(num => {
        return (num == 1)? counter++ : ''
    })
    return counter
}   
console.log(countOnes(1110010)); // 4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM