假设您有一个数字列表:
cursor.execute(SELECT)
for row in cursor:
print(row)
在不嵌套大量if / else语句的情况下,找到最接近零的值的更优雅的解决方案是什么?
答案 0 :(得分:4)
使用reduce:
list.reduce((pre,cur) => Math.abs(pre) > Math.abs(cur) ? cur : pre)
答案 1 :(得分:0)
使用sort:
list.sort((a,b) => Math.abs(a)-Math.abs(b))[0];
答案 2 :(得分:0)
这是你可以通过单次遍历数组来完成的。
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));
&#13;
答案 3 :(得分:-2)
获取所有数字的绝对值
Math.abs()
按升序对数字进行排序
Array.sort()
第一个数字是必填答案。