หา Index ทุกตำแหน่งของค่าต่ำสุด (Minimum Value) ในอาร์เรย์
ตัวอย่าง
[1, 2, 3, 4, 1, 7, 8, 9, 1] → Min: 1 → Indices: [0, 4, 8]
ตัวอย่างโค้ด
const minArray = arr => {
const min = Math.min(...arr);
const res = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] === min) res.push(i);
}
return res;
};
console.log(minArray([1, 2, 3, 4, 1, 7, 8, 9, 1]));
ผลลัพธ์
[ 0, 4, 8 ]
วิธีแบบ Reduce (Single Pass)
const minArray = arr =>
arr.reduce((acc, val, i) => {
if (val < acc.min) return { min: val, indices: [i] };
if (val === acc.min) acc.indices.push(i);
return acc;
}, { min: Infinity, indices: [] }).indices;
Single Pass O(n) หา Min และเก็บ Index พร้อมกัน