Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tìm chỉ số các giá trị nhỏ nhất trong mảng - JavaScript


Giả sử chúng ta có mảng số như sau:

const arr = [1,2,3,4,1,7,8,9,1];

Muốn tìm chỉ số phần tử nhỏ nhất, ta có thể dùng:

const min = Math.min.apply(Math, arr); 
const ind = arr.indexOf(min);

Code trên sẽ gán ind = 0, đúng nhưng chưa đủ.

Yêu cầu: nếu có nhiều phần tử nhỏ nhất (như ba số 1 ở trên), trả về mảng chứa tất cả chỉ số của chúng.

Kết quả mong đợi: [0, 4, 8]

Chúng ta cần viết hàm nhận vào mảng số và trả về mảng tất cả chỉ số của phần tử nhỏ nhất.

Ví dụ

Dưới đây là đoạn code:

const arr = [1,2,3,4,1,7,8,9,1]; 
const minArray = arr => { 
  const min = arr.reduce((acc, val) => Math.min(acc, val), Infinity); 
  const res = []; 
  for(let i = 0; i < arr.length; i++){ 
    if(arr[i] !== min){ 
      continue; 
    }; 
    res.push(i); 
  }; 
  return res; 
}; 
console.log(minArray(arr));

Kết quả

Đoạn code sẽ in ra console:

[ 0, 4, 8 ]