問題: 你將得到一個詞。你的作業是回傳單詞的中間字符。如果單詞的長度是奇數,則回傳中間字符。如果單詞的長度是偶數,則回傳中間的 2 個字符。
我的解決方案
function isOdd(num) {
return num % 2;
}
function getMiddle(str) {
const middleDigit = (str.length 1) / 2;
if (isOdd(middleDigit) === 1) {
return str[middleDigit];
} else {
return str[middleDigit - 0.5] str[middleDigit 0.5];
}
}
console.log(getMiddle(`the`));
但是我收到的是NaN輸出,而不是hstr[input] 哪里偏離了我的意圖?
提前致謝!
uj5u.com熱心網友回復:
你的執行有點偏離!
- 我更改了您的 isOdd 函式以回傳一個布林值,而不是一個數字。
- 在每次計算中間數字后,我從結果中減去 1,因為我們正在處理索引(它們從 0 開始位置計數,而不是 1)。
- 當字長為偶數時,中間的第二個數字只要做"str.length/2"即可,無需加減1。
function isOdd(num) {
return num % 2 === 1;
}
function getMiddle(str) {
if (isOdd(str.length)) {
return str[((str.length 1) / 2) - 1];
} else {
return str[(str.length / 2) - 1] str[str.length / 2];
}
}
console.log(getMiddle(`the`));
console.log(getMiddle(`root`));
uj5u.com熱心網友回復:
一些注釋:
- 為以 開頭的函式回傳一個布林值
is...。 - 取沒有偏移的地板中間索引。
- 在沒有整數值的情況下檢查字串長度而不是中間索引。
- 回傳單個字符或使用開始和結束的調整項對字串進行切片。
function isOdd(num) {
return num % 2 === 1;
}
function getMiddle(str) {
const middleDigit = Math.floor(str.length / 2);
return isOdd(str.length)
? str[middleDigit]
: str.slice(middleDigit - 1, middleDigit 1);
}
console.log(getMiddle('the'));
console.log(getMiddle('boot'));
uj5u.com熱心網友回復:
您將錯誤的值傳遞給 is_odd
function isOdd(num) {
return ((num % 2) === 1);
}
function getMiddle(str) {
const middleDigit = Math.floor(str.length / 2);
if (isOdd(str.length)) {
return str[middleDigit];
} else {
return str[middleDigit - 1] str[middleDigit];
}
}
console.log(getMiddle(`they`));
uj5u.com熱心網友回復:
這是另一個解決方案:
- 我使用isInt()函式而不是 isOdd()。
- 還使用了三元運算子而不是 if/else。
function isInt(n) {
return n % 1 === 0;
}
function getMiddle(str) {
const middle = (str.length / 2);
return isInt(middle) ? str[middle - 1] : str[middle - 0.5];
}
console.log(getMiddle('the')); // h
console.log(getMiddle('abcd')); // b
uj5u.com熱心網友回復:
讓它作業,這是我的基本解決方案。
const isEven = function (number) {
return number % 2 === 0;
};
const getMiddle = function (inputString) {
if (isEven(inputString.length) === true) {
return (
inputString[inputString.length / 2 - 1]
inputString[inputString.length / 2]
);
} else if (isEven(inputString.length) === false) {
return inputString[inputString.length / 2 - 0.5];
}
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/351770.html
標籤:javascript 数组 细绳
上一篇:如何使用二維陣列作為輸入?
