У меня есть 5 переменныхFinding какая переменная минимальна из Math.min()
var a=10,b=23,c=45,d=90,e=78; var min=Math.min(a,b,c,d,e);
я хочу найти, какая переменная является минимальным без использования для цикла или если заявления ??
У меня есть 5 переменныхFinding какая переменная минимальна из Math.min()
var a=10,b=23,c=45,d=90,e=78; var min=Math.min(a,b,c,d,e);
я хочу найти, какая переменная является минимальным без использования для цикла или если заявления ??
Уверьте, поместите все переменные в объект, сортируйте их, а затем получите первый элемент.
var values = { a:10, b:23, c:45, d:90, e:2 }
var smallest = Object.keys(values).sort(function(a,b){return values[a]-values[b]})[0]
console.log(smallest) // "e"
сортирует итерации более, чем уменьшает. –
@NinaScholz уверен, однако OP был довольно специфичен в отношении «без использования для цикла или операторов» - я думаю, что чем проще, тем лучше в этом случае. Мой ответ не будет узким местом. – brod
его рабочий человек !! Awsome! – Aranganathan
Он не работает без какого-либо цикла (итераторы массива, или для while) и операторы if.
Это решение с Array#reduce()
и объект для ссылки .:
var a = 10, b = 23, c = 45, d = 90, e = 78,
object = { a: a, b: b, c: c, d: d, e: e },
result = function (o) {
var keys = Object.keys(o);
return keys.reduce(function (r, k) {
if (o[k] < o[r[0]]) {
return [k];
}
if (o[k] === o[r[0]]) {
r.push(k);
}
return r;
}, [keys.shift()]);
}(object);
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');
Нет, если версия
var a = 10, b = 23, c = 45, d = 90, e = 78,
object = { a: a, b: b, c: c, d: d, e: e },
result = function (o) {
var keys = Object.keys(o);
return keys.reduce(function (r, k) {
o[k] === o[r[0]] && r.push(k);
return o[k] < o[r[0]] && [k] || r;
}, [keys.shift()]);
}(object);
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');
Что вы подразумеваете под «какой переменной»? Имя переменной? И зачем вам это нужно? – hindmost
Использование 'Math.min()', так как вы вернете минимальное значение 5 переменных. Вы хотите найти имя переменной *? – BenM
да .. прямо! – Aranganathan