function isSpecialNumber(n) {
let str = n.toString();
for (let i = 0; i < str.length; i ) {
if (str.charAt(i) > 5) {
return 'NOT!!'
} else {
return 'Special!!';
}
}
}
console.log(
isSpecialNumber(144525),
isSpecialNumber(2),
isSpecialNumber(9),
isSpecialNumber(23),
isSpecialNumber(39)
)
它是如何作業的:
isSpecialNumber(2) === '特別的!!' 2 是區間 [0:5] 中的單個數字。
isSpecialNumber(9) === '不是!!' 9 是一位數,但不在區間 [0:5] 內。
isSpecialNumber(23) === '特別的!!' 數字 23 的所有數字都在區間 [0:5] 內。
isSpecialNumber(39) === '不是!!' 第二個數字 (9) 不在區間 [0:5] 中。
uj5u.com熱心網友回復:
您唯一需要做的就是將回傳“Special”放在 for 之外。像這樣:
function isSpecialNumber(n) {
let str = n.toString();
for (let i = 0; i < str.length; i ) {
if (str.charAt(i) > 5) {
return "NOT!!";
}
}
return "Special!!"
}
因為在您的解決方案中,如果其中一個數字小于 5,它會回傳“特殊”,而下一個可能不是。
uj5u.com熱心網友回復:
function isSpecialNumber(n) {
let str = n.toString();
let found = 'special';
for (let i = 0; i < str.length; i ) {
if (str.charAt(i) > 5) {
found = 'NOT!!';
}
}
return found;
}
console.log(
isSpecialNumber(144525),
isSpecialNumber(2),
isSpecialNumber(9),
isSpecialNumber(23),
isSpecialNumber(39)
)
uj5u.com熱心網友回復:
試試這個,它有點不同,但它應該做同樣的事情:
function isSpecialNumber(n) {
// n.toString() turns the number into a string
// .split('') splits the string into an array
// .every loops through the items in an array and
// checks that all the elements return true for the function that
// passed as the parameter into the every function.
// .every doc: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every
const special = n.toString()
.split()
.every((digit) => parseInt(digit) < 5)
// You can also do this, which uses .some
// .some doc: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some
/*
const special = n.toString()
.split()
.some((digit) => parseInt(digit) > 5)
*/
// if all the digits are less than 5, then it's special
// and should return "Special!!"
// else, return "NOT!!"
return special ? "Special!!" : "NOT!!"
}
console.log(
isSpecialNumber(144525),
isSpecialNumber(2),
isSpecialNumber(9),
isSpecialNumber(23),
isSpecialNumber(39)
)
uj5u.com熱心網友回復:
一般來說,我認為問題在于您比較假定數字的方式。您正在撰寫 str.charAt(i) > 5 但我認為您忘記了先將數字轉換為字串,因此您將字符的 ascii 值與不會給出適當結果的數字進行比較。我建議您先將字符決議為整數,然后與 5 進行比較。示例:parseInt(str.charAt(i)) > 5
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/463826.html
標籤:javascript
