Giả sử chúng ta có một mảng chứa các số, nhiệm vụ là viết một hàm nhận vào mảng đó và ánh xạ tất cả các giá trị về thang đo 0 đến 100. Nghĩa là số lớn nhất sẽ thành 100, số nhỏ nhất thành 0, và các số còn lại được chuyển đổi theo tỷ lệ tương ứng.
Dưới đây là mã thực hiện:
Ví dụ
const numbers = [45.71, 49.53, 18.5, 8.38, 38.43, 28.44];
const mapNumbers = (arr) => {
const max = Math.max(...arr);
const min = Math.min(...arr);
const diff = max - min;
return arr.reduce((acc, val) => acc.concat((100 / diff) * (val - min)), []);
};
console.log(mapNumbers(numbers));Kết quả
Đầu ra trong console sẽ là:
[
90.71688942891859,
100,
24.59295261239368,
0,
73.02551640340218,
48.74848116646417
]