Скрипт возвращает мне массив, содержащий следующую пару ключ-значение:
[{"analytes":"ALBS,CRP,FR,FERHN"}]
Как бы вы поступили, чтобы получить несколько пар ключ-значение в массиве, например этот:
[
{"analyte":"ALBS"},
{"analyte":"CRP"},
{"analyte":"FR"},
{"analyte":"FERHN"}
]
Кроме того, программа, которую я использую, все еще использует ECMAScript 5.
Я отредактировал свой пост для ясности.
Хорошо, в таком случае это простой сплит + карта, как я уже сказал.. input[0].analytes.split().map(analyte => ({analyte}))
Программа, которую я использую, все еще застряла в ECMA5, к сожалению, я не могу использовать лямбда-выражения.
Тем не менее, спасибо за ваш совет, я попытаюсь применить его к этой более ранней версии javascript.
В ответе на комментарий ошибка. Это должно быть .split(",") с запятой. Вы можете заменить стрелку функцией, чтобы заставить ее работать.
Я создал свою функцию следующим образом: function Spliter(input) { input[0].analytes.split(",").map(analyte) return analyte } но она вызывает это сообщение об ошибке: проблема с оценкой скрипта: TypeError: невозможно прочитать свойство "разделить" из неопределенного в строке номер 53
.map(analyte) return analyte } явно даже не ES5... извините, что запутал вас стрелочной нотацией ES6, но это так легко исправить - input[0].analytes.split(",").map(function(analyte) { return {analyte:analyte})@yogi - где-то в глубоких тайниках моей памяти я был убежден split без каких-либо аргументов по поводу , ... это join конечно, что "по умолчанию" , - спасибо за пикап
Наконец-то он заработал на 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 Действительно раздражает, я бы поискал помощь у разработчиков программного обеспечения. Спасибо за помощь!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


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