สมมติว่าเรามีอาร์เรย์ที่มีตัวเลขบางจำนวน งานของเราคือเขียนฟังก์ชันที่รับอาร์เรย์และแมปค่าทั้งหมดให้สัมพัทธ์กับช่วง 0 ถึง 100 หมายความว่าตัวเลขมากที่สุดจะกลายเป็น 100 ตัวเลขน้อยที่สุดกลายเป็น 0 และตัวอื่นๆ จะถูกแปลงเป็นตัวเลขระหว่าง 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 ]