Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

แทรกค่าระหว่างทุกค่าในอาร์เรย์ JavaScript


เรามีอาร์เรย์ตัวเลขแบบนี้

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 } ]