あなたは番号のリストを持っていると言う:正の数と負の数のリストが与えられます。何がゼロに最も近いかを知る上品な解決策は何ですか?
var list = [4, -12, 18, 1, -3];
のif/else文の全体の多くを入れ子にすることなく、ゼロに近い値を見つけるための、よりエレガントな解決策は何ですか?
あなたは番号のリストを持っていると言う:正の数と負の数のリストが与えられます。何がゼロに最も近いかを知る上品な解決策は何ですか?
var list = [4, -12, 18, 1, -3];
のif/else文の全体の多くを入れ子にすることなく、ゼロに近い値を見つけるための、よりエレガントな解決策は何ですか?
昇順
Array.sort()
内の数字は、最初の数が必要な答えです。すべての数字
Math.abs()
一種の絶対値を取得します
これは必ずしも元の値を返すわけではありません(例えば、-1が最も近く、1を返します) – roger
使用ソート:
list.sort((a,b) => Math.abs(a)-Math.abs(b))[0];
使用が削減:
list.reduce((pre,cur) => Math.abs(pre) > Math.abs(cur) ? cur : pre)
これは、あなたが配列の1つの横断で何ができるかです。
function findClosestToZero(arr) {
if (arr.length === 0) {
return;
}
var closeNumber = Math.abs(arr[0]);
arr.forEach(function(number) {
if (Math.abs(number) < closeNumber) {
closeNumber = Math.abs(number)
}
});
return closeNumber;
}
var arr = [-5, 98, -4, 7, 9, 213, 4, -2, 1];
console.log(findClosestToZero(arr));
エレガント?まずソリューションから始めましょう。これまでに何を試しましたか? –
'Math.abs'関数を実行し、通常の方法を使用して最も低い数値を探します。 –
ネクタイがあればどうなりますか? – j08691