我有一個帶有數字陣列的函式,我想對它進行平方,但我希望它們像 [4,9,16] 這樣的陣列框每次我嘗試這樣做時,它都會在控制臺中回傳一個 NAN 輸出。回傳的數字以直線形式列出。
digit = (num) => {
let digits = String(num).split('').map(Number);
for (let i = 0; i < digits.length; i ) {
let square = Math.pow(digits, 2);
console.log(square);
}
};
digit(234);
輸出:NaN
digit = (num) => {
let digits = String(num).split('').map(Number);
for (let i = 0; i < digits.length; i ) {
let square = Math.pow(digits[i], 2);
console.log(square);
}
};
digit(234);
輸出:4 9 16
是否可以將我的輸出設為 [4,9,16]?
uj5u.com熱心網友回復:
這里要做的是對陣列進行原地修改,因此需要將結果賦值給Math.pow()陣列的每個元素。
digit = (num) => {
let digits = String(num).split("")
.map(Number);
for(let i = 0; i < digits.length; i ) {
digits[i] = Math.pow(digits[i], 2);
}
console.log(digits);
};
digit(234);
在 for 回圈完成后,每個陣列項都將被平方。
uj5u.com熱心網友回復:
Math.pow() 需要兩個輸入,都應該是數字(不是陣列)
您需要遍歷您的數字,并將值推送到陣列。
像這樣的東西:
function digit(num) {
let digits = String(num).split('')
.map(Number);
let square = [] // Define an empty array outside the loop
for(let i = 0; i < digits.length; i ){
square.push(Math.pow(digits[i],2)); //Push each value to the loop
}
return square; //Return the modified array after the loop
}
console.log(digit(234)); //Outputs [4, 9, 16]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/376398.html
標籤:javascript 数组
