เรามีอาร์เรย์ตัวเลขแบบนี้
const numbers = [1, 6, 7, 8, 3, 98];
เราต้องแปลงอาร์เรย์ตัวเลขนี้เป็นอาร์เรย์ของออบเจกต์ โดยแต่ละออบเจกต์มีคีย์ "value" และค่าเป็นค่าเฉพาะขององค์ประกอบอาร์เรย์ นอกจากนี้เราต้องแทรกออบเจกต์ระหว่างสององค์ประกอบที่มีอยู่แล้วด้วยคีย์ "operation" และใช้ +, -, *, / สลับกันเป็นค่า
ดังนั้น สำหรับ numbers array ผลลัพธ์จะประมาณนี้
[ { "value": 1 }, { "operation": "+" }, { "value": 6 }, { "operation": "-" }, { "value": 7 }, { "operation": "*" }, { "value": 8 }, { "operation":"/" }, { "value": 3 }, { "operation": "+" }, {"value": 98} ]ดังนั้น มาเขียนโค้ดสำหรับฟังก์ชันนี้
ตัวอย่าง
const numbers = [1, 6, 7, 8, 3, 98, 3, 54, 32]; const insertOperation = (arr) => { const legend = '+-*/'; return arr.reduce((acc, val, ind, array) => { acc.push({ "value": val }); if(ind < array.length-1){ acc.push({ "operation": legend[ind % 4] }); }; return acc; }, []); }; console.log(insertOperation(numbers));ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้
[ { value: 1 }, { operation: '+' }, { value: 6 }, { operation: '-' }, { value: 7 }, { operation: '*' }, { value: 8 }, { operation: '/' }, { value: 3 }, { operation: '+' }, { value: 98 }, { operation: '-' }, { value: 3 }, { operation: '*' }, { value: 54 }, { operation: '/' }, { value: 32 } ]