我正在嘗試回傳平均值。我怎樣才能只得到數字而忽略錯誤的“str”?
function average2 () {
console.log (`arguments passed: ${arguments.length}`)
console.log("All arguments:");
let sum = 0;
let numOnly = arguments.match(/\d /)[0]
for (let i= 0; i < arguments.length; i ) {
sum = arguments[i]
}
return (sum) / arguments.length
}
console.log (average2 (5, 6, false, "str", 100))
uj5u.com熱心網友回復:
您可以使用typeof運算子過濾數字,如下所示:
function average (...params) {
const nums = params.filter(n => typeof n == 'number');
return nums.reduce((acc,n) => acc n) / nums.length;
}
console.log (average (5, 6, false, "str", 7))
在這個例子中我只是計算了 nums 的平均值,如果你想根據引數長度計算平均值,你可以替換return nums.reduce((acc,n) => acc n) / nums.length;為return nums.reduce((acc,n) => acc n) / params.length;
uj5u.com熱心網友回復:
你可以使用這個:
function average() {
const numericArgs = [...arguments].filter(x => typeof x === 'number');
return numericArgs.reduce((a, b) => a b, 0) / numericArgs.length;
}
你可以使用這個:
function average(...args) {
const numericArgs = args.filter(x => typeof x === 'number');
return numericArgs.reduce((a, b) => a b, 0) / numericArgs.length;
}
uj5u.com熱心網友回復:
只需在添加之前添加型別檢查:
function average2 () {
let sum = 0;
for (let i= 0; i < arguments.length; i ) {
if(typeof arguments[i] === "number"){
sum = arguments[i]
}
}
return (sum) / arguments.length
}
console.log (average2 (5, 6, false, "str", 100))
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/405199.html
標籤:
上一篇:如何以有組織的方式回顯陣列專案?
下一篇:希望在:->之后洗掉任何值
