我最近從 YouTube 開始了 JS。我需要一些邏輯方面的幫助。我有一個半徑陣列:
const radius = [3,1,2,4]
我想計算直徑并列印最大直徑。我試過:
const radius = [3, 1, 2, 4];
const myLogic = function (currentRadius) {
return (2 * currentRadius)
}
const calculate = function (radius) {
const output = [];
radius.map(currentValue => output.push(myLogic(currentValue))).reduce((max, currentItem) => {
if (max < currentItem) {
max = currentItem;
}
console.log("Largest diameter: ",max);
}, 0)
return output;
}
console.log(calculate(radius));
輸出:
1
undefined
undefined
undefined
[ 6, 2, 4, 8 ]
我怎樣才能得到最大的直徑。請幫忙。
uj5u.com熱心網友回復:
有幾個小問題。1)您沒有在map函式中回傳值,因此陣列沒有用于reduce呼叫的值2)在reduce方法中缺少回傳值max
const radius = [3, 1, 2, 4];
const myLogic = function (currentRadius) {
return 2 * currentRadius;
};
const calculate = function (radius) {
return radius.map(myLogic).reduce((max, currentItem) => {
if (max < currentItem) {
max = currentItem;
}
console.log("Largest diameter: ", max);
return max;
}, 0);
};
console.log(calculate(radius));
// calculate method further simplified into
const cal2 = (arr) =>
radius.map(myLogic).reduce((max, curr) => (max < curr ? curr : max), 0);
console.log('cal2-->', cal2(radius));
uj5u.com熱心網友回復:
您可以嘗試 Math.max() 方法來獲得最大的數字。
const radius = [3, 1, 2, 4];
const myLogic = function (currentRadius) {
return (2 * currentRadius)
}
const calculate = function (radius) {
radius = radius.map(currentValue => myLogic(currentValue));
let max = Math.max(...radius);
console.log(max);
}
uj5u.com熱心網友回復:
在這里使用for...of回圈很有用:
function double (num) {
return num * 2;
}
function calculate (radii) {
const diameters = [];
let max = 0;
for (const radius of radii) {
const diameter = double(radius);
diameters.push(diameter);
if (diameter > max) max = diameter;
}
console.log(`Largest diameter: ${max}`);
return diameters;
}
const radii = [3, 1, 2, 4];
console.log(calculate(radii));
uj5u.com熱心網友回復:
const arr = [5, 7, 8, 6, 3, 2, 1];
const radiusArr = arr.map((item) => item * 2)
const newArr = radiusArr.sort((a, b) => a - b);
console.log(newArr[newArr.length-1])
const large = radiusArr.reduce((preNumber, currNumber) => {
if(preNumber > currNumber) {
return preNumber
} else {
return currNumber
}
})
console.log(large)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/395554.html
標籤:javascript
