Javascript 查找更大数字以匹配输入的逻辑
Javascript Logic to find greater number to match input
实际上我正在研究一个逻辑,我得到一个数组和一个输入变量,我需要将该变量与数组进行比较,并在不使用排序的情况下找到该数组中的最小数字,
例如。我得到了一个类似
的数组
const arr = [20,25,13,10,3,5,9,22];
和像
这样的输入
var inputt =3;
所以我需要找到数组中最小但大于上述情况下输入的数字,预期答案是“5”。
方法应该是什么,我已经尝试围绕数组执行循环并找到最小的数字,但无法弄清楚如何从大于给定输入的数组中获取最小数字。
var myarr = [5,3,9,10,7];
var smallest = arr[0];
for(var i=1; i<arr.length; i++){
if(myarr[i] < smallest){
smallest = myarr[i];
}
}
console.log(smallest);
const arr = [20,25,13,10,3,5,9,22];
const input = 3;
const res = Math.min(...arr.filter(num => num > input));
console.log(res)
过滤掉小于输入的数字,然后找到它们的最小值。
试试这个,如果有效请告诉我
var myarr = [5,3,9,10,7];
var smallest = arr[0];
for(var i=1; i<arr.length; i++){
if(myarr[i] < smallest){
if( myarr[i] > inputt){
smallest = myarr[i];
}
}
}
console.log(smallest);
你也可以使用reduce,这个returns undefined if no matching number.
const res = arr.reduce((acc, v) => v > input && (acc === undefined || v < acc) ? v : acc, undefined);
实际上我正在研究一个逻辑,我得到一个数组和一个输入变量,我需要将该变量与数组进行比较,并在不使用排序的情况下找到该数组中的最小数字, 例如。我得到了一个类似
的数组const arr = [20,25,13,10,3,5,9,22];
和像
这样的输入var inputt =3;
所以我需要找到数组中最小但大于上述情况下输入的数字,预期答案是“5”。
方法应该是什么,我已经尝试围绕数组执行循环并找到最小的数字,但无法弄清楚如何从大于给定输入的数组中获取最小数字。
var myarr = [5,3,9,10,7];
var smallest = arr[0];
for(var i=1; i<arr.length; i++){
if(myarr[i] < smallest){
smallest = myarr[i];
}
}
console.log(smallest);
const arr = [20,25,13,10,3,5,9,22];
const input = 3;
const res = Math.min(...arr.filter(num => num > input));
console.log(res)
过滤掉小于输入的数字,然后找到它们的最小值。
试试这个,如果有效请告诉我
var myarr = [5,3,9,10,7];
var smallest = arr[0];
for(var i=1; i<arr.length; i++){
if(myarr[i] < smallest){
if( myarr[i] > inputt){
smallest = myarr[i];
}
}
}
console.log(smallest);
你也可以使用reduce,这个returns undefined if no matching number.
const res = arr.reduce((acc, v) => v > input && (acc === undefined || v < acc) ? v : acc, undefined);