เรามีอาร์เรย์ของตัวเลขเช่นนี้ -
const numbers = [1, 6, 7, 8, 3, 98];
เราต้องแปลงอาร์เรย์ของตัวเลขนี้เป็นอาร์เรย์ของออบเจ็กต์โดยแต่ละอ็อบเจ็กต์มีคีย์เป็น "ค่า" และค่าของมันเป็นค่าเฉพาะขององค์ประกอบอาร์เรย์ นอกจากนี้ เราต้องแทรกอ็อบเจ็กต์ระหว่างสององค์ประกอบที่มีอยู่ก่อนซึ่งมีคีย์เป็น "การดำเนินการ" และใช้อีกทางหนึ่งจาก+, - * , / เป็นค่าของมัน
ดังนั้นสำหรับอาร์เรย์ตัวเลข ผลลัพธ์จะออกมาประมาณนี้ -
[
{ "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 }
]