สมมติว่า เรามีอาร์เรย์ที่มีตัวเลขอยู่บ้าง หน้าที่ของเราคือเขียนฟังก์ชันที่รับอาร์เรย์และจับคู่ค่าทั้งหมดที่สัมพันธ์กับ 0 ถึง 100 หมายความว่าจำนวนที่มากที่สุดควรแทนที่ด้วย 100 ซึ่งน้อยที่สุดด้วย 100 และทั้งหมด ส่วนอื่นๆ ควรแปลงเป็นตัวเลขเฉพาะระหว่าง 0 ถึง 100 ตามอัตราส่วน
ต่อไปนี้เป็นรหัสสำหรับทำเช่นเดียวกัน −
ตัวอย่าง
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)); ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
[ 90.71688942891859, 100, 24.59295261239368, 0, 73.02551640340218, 48.74848116646417 ]