Найти минимальное значение из массива
Есть код:
function min(obj) { var a; for (var i = 0; i < obj.length; i++) { if (obj[i] < obj[0]) { a = obj[i]; } } return a; } Я полагаю что ошибка в ифе и что надо сравнивать со всеми объектами из массива, но не понимаю как это сформулировать. |
Colonelo,
function min(obj) { var a = obj[0]; for (var i = 1; i < obj.length; i++) { if (obj[i] < a) { a = obj[i]; } } return a; } |
function min(obj) { return Math.min.apply(Math, obj); } ES6: const min = obj => Math.min(...obj); |
Спасибо за быстрый ответ
|
А как найти второе по величине число из такого же массива?
|
var x = obj.sort((a,b)=> a-b)[1]; дубли не игнорируются |
var x = obj.filter((v, i, s)=>s.indexOf(v) === i).sort((a,b)=> a-b)[1]; дубли игнорируются |
А без использования сортировки?
|
var x = Math.min(...obj.filter(el=> el > Math.min(...obj))); |
Colonelo,
function min(obj) { var a = [obj[0]]; for (var i = 1; i < obj.length; i++) { for (var k = 0; k < a.length; k++) if (obj[i] < a[k]) break; a.splice(k, 0, obj[i]) } return a } alert(min([4, 8, 1, 12, -3, 1])); |
Часовой пояс GMT +3, время: 05:51. |