Изменить элементы объекта внутри массива в Ionic с помощью Angular

у меня есть массив myData="1|N|BK1||MATH|1890,00|2100,00|1: 2|N|BK2||НАУКА|1520,00|1790,00|1: "

Мне нужно изменить эти значения myData, как показано ниже:

myFinalArray=   
[
        {
         "p_s.no": "3",
                 "p_ebook": "N",
         "p_id": "BK1",
                 "p_ebooktitle": "",
                 "p_name": "MATH",
                 "p_cprice": "1890.00",
                 "p_lprice": "2100.00",
                 "p_Q": "1"
        },
        {
         "p_s.no": "3",
                 "p_ebook": "N",
         "p_id": "BK2",
                 "p_ebooktitle": "",
                 "p_name": "SCIENCE",
                 "p_cprice": "1890.00",
                 "p_lprice": "2100.00",
                 "p_Q": "1"
        }
    ]

Я пытаюсь разделить значения с помощью ":" и затем "|" и прокручивайте каждое значение, чтобы добавить текст для каждого значения. Наконец, подтолкнуть его к переменной. Я чувствую, что могут быть лучшие способы добиться этого. Пожалуйста, помогите мне с вашими идеями.

Пример кода ниже:

this.myDataArray = this.myData.split(": ")
this.myDataArray.forEach(element=>
{
this.myNewDataArray=element.split("|")
for (let i = 0; i < this.myNewDataArray.length; i++) 
{
if (i===0){
this.temp = ('"p_s.no"' + ':' + '"' + this.myNewDataArray[i] + '"');    
}
else if (i === 1) {
this.temp = this.temp + "," + ('"p_ebook"' + ':' + '"' + this.myNewDataArray[i] + '"');
}
else if (i === 2) {
this.temp = this.temp + "," + ('"p_id"' + ':' + '"' + this.myNewDataArray[i] + '"');
}
else if (i === 3) {
this.temp = this.temp + "," + ('"p_ebooktitle"' + ':' + '"' + this.myNewDataArray[i] + '"');
}
else if (i === 4) {
this.temp = this.temp + "," + ('"p_name"' + ':' + '"' + this.myNewDataArray[i] + '"');
}
else if (i === 5) {
this.temp = this.temp + "," + ('"p_cprice"' + ':' + '"' + this.myNewDataArray[i] + '"');
}
else if (i === 6) {
this.temp = this.temp + "," + ('"p_lprice"' + ':' + '"' + this.myNewDataArray[i] + '"');
}
else if (i === 7) {
this.temp = this.temp + "," + ('"p_Q"' + ':' + '"' + this.myNewDataArray[i] + '"');
}   
}
if (this.temp !== "") {
this.myFinalArray.push("{" + this.temp + "}");        
      }
})
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
121
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поместите все ключи вашего объекта в массив, чтобы вы могли перебирать массив, чтобы сопоставить каждое имя свойства и значение в объекте в map() строки разделенных данных.

const keys = ["p_s.no","p_ebook","p_id","p_ebooktitle","p_name","p_cprice","p_lprice","p_Q"];

const myData= "1|N|BK1||MATH|1890.00|2100.00|1: 2|N|BK2||SCIENCE|1520.00|1790.00|1: ";

const res = myData.split(': ')
                  .filter(s => !!s.trim())
                  .map(s => s.split('|').reduce((a,c,i) => (a[keys[i]] = c, a),{}))
                  
console.info(res)

Другие вопросы по теме