Cho mảng số, viết hàm trả về giá trị nhỏ thứ hai mà không sắp xếp mảng.
Ví dụ: [67, 87, 56, 8, 56, 78, 54, 67, 98, 56, 54] → 54 (nhỏ nhất sau 8).
Cách: tìm chỉ số nhỏ nhất, xóa nó, tìm nhỏ nhất của mảng còn lại.
Ví dụ
const arr = [67, 87, 56, 8, 56, 78, 54, 67, 98, 56, 54];const minimumIndex = arr => arr.indexOf(Math.min(...arr));const secondMinimum = arr => { const copy = arr.slice(); copy.splice(minimumIndex(copy), 1); return copy[minimumIndex(copy)];};console.log(secondMinimum(arr));Kết quả
Đầu ra trong console sẽ là:
54