Преобразование одной пары ключ-значение в несколько пар

Скрипт возвращает мне массив, содержащий следующую пару ключ-значение:

[{"analytes":"ALBS,CRP,FR,FERHN"}]

Как бы вы поступили, чтобы получить несколько пар ключ-значение в массиве, например этот:

[
  {"analyte":"ALBS"},
  {"analyte":"CRP"},
  {"analyte":"FR"},
  {"analyte":"FERHN"}
]

Кроме того, программа, которую я использую, все еще использует ECMAScript 5.

вы бы разделили результат на ',' и map (я думаю, строка была разделена, а массив имеет карту в ES5) - хотя... глядя еще раз, я не вижу НИКАКОГО сходства между вводом и выводом... где значения ALBU , CAU CLU CREAU GLUU KU NAU PHOSU Protéines urinaires UAU UREEU вообще откуда взялись? космическое пространство? совершенно не связанный с вводом

Bravo 16.05.2022 11:54

Я отредактировал свой пост для ясности.

Raphi14 16.05.2022 12:05

Хорошо, в таком случае это простой сплит + карта, как я уже сказал.. input[0].analytes.split().map(analyte => ({analyte}))

Bravo 16.05.2022 12:09

Программа, которую я использую, все еще застряла в ECMA5, к сожалению, я не могу использовать лямбда-выражения.

Raphi14 16.05.2022 12:19

Тем не менее, спасибо за ваш совет, я попытаюсь применить его к этой более ранней версии javascript.

Raphi14 16.05.2022 12:19

В ответе на комментарий ошибка. Это должно быть .split(",") с запятой. Вы можете заменить стрелку функцией, чтобы заставить ее работать.

Yogi 16.05.2022 12:22

Я создал свою функцию следующим образом: function Spliter(input) { input[0].analytes.split(",").map(analyte) return analyte } но она вызывает это сообщение об ошибке: проблема с оценкой скрипта: TypeError: невозможно прочитать свойство "разделить" из неопределенного в строке номер 53

Raphi14 16.05.2022 12:46
.map(analyte) return analyte } явно даже не ES5... извините, что запутал вас стрелочной нотацией ES6, но это так легко исправить - input[0].analytes.split(",").map(function(analyte) { return {analyte:analyte})
Bravo 16.05.2022 12:52

@yogi - где-то в глубоких тайниках моей памяти я был убежден split без каких-либо аргументов по поводу , ... это join конечно, что "по умолчанию" , - спасибо за пикап

Bravo 16.05.2022 12:56

Наконец-то он заработал на JSBIN со следующим кодом: var input = [{"analytes":"ALBS,CRP,FR,FERHN"}] function Spliter(list){ return list[0].analytes.split(",").map(function(info){ return {analyte:info} }) } console.info(Spliter(input)) ... но не в программном обеспечении, которое я использую, что отправляет следующую ошибку: проблема с оценкой скрипта: TypeError: невозможно прочитать свойство "разделить" из неопределенного в строке номер 52 Действительно раздражает, я бы поискал помощь у разработчиков программного обеспечения. Спасибо за помощь!

Raphi14 16.05.2022 15:44
Поведение ключевого слова "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) для оценки ваших знаний,...
1
10
38
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы можете использовать строка.split() вместе с Массив.карта()

Демо :

const jsonObj = [{"analytes":"ALBS,CRP,FR,FERHN"}];

const res = jsonObj[0].analytes.split(',').map(function(item) {
  return {"analyte": item}
});

console.info(res);

Да, как я уже говорил в комментарии, используя аналогичный скрипт от Bravo и не используя нотацию =>, а вместо этого используя функцию, мне удалось заставить это работать в JSBIN. Но по неизвестной причине это не работает в программном обеспечении, которое я использую... Спасибо всем за вашу помощь.

Raphi14 16.05.2022 17:24

Спасибо что подметил это. Я обновил фрагмент кода.

Rohìt Jíndal 16.05.2022 17:36

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