Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.04.2021, 17:20
Аватар для Black_Star
Профессор
Отправить личное сообщение для Black_Star Посмотреть профиль Найти все сообщения от Black_Star
 
Регистрация: 11.07.2016
Сообщений: 300

Как обернуть значения ключей объекта в массив
Подскажите, как из значений "products[]":"Applications,VPN", получить значение "products[]":["Applications,VPN"], Значения ключа собирается из мульти select и может содержать много чекнутых options /

Сейчас функция выглядит так
function getAllSelectedOptions(selectID, selectName) {
 let selectedMultiOptionValues = Array.from(selectID.options)
     .filter(option => option.selected)
     .map(option => option.value);
 return formData.append(selectName, selectedMultiOptionValues);
}
let products = formCreateAccount.querySelector(".js-products"),
 getAllSelectedOptions(products, 'products[]');
Ответить с цитированием
  #2 (permalink)  
Старый 05.04.2021, 17:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,133

Black_Star,
return formData.append(selectName, [selectedMultiOptionValues.join(",")]);
Ответить с цитированием
  #3 (permalink)  
Старый 05.04.2021, 17:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,133

Black_Star,
или возможно так
return formData.append(selectName, `['${selectedMultiOptionValues}']`);


нужно знать что на самом деле вам нужно.
Ответить с цитированием
  #4 (permalink)  
Старый 05.04.2021, 18:07
Аватар для Black_Star
Профессор
Отправить личное сообщение для Black_Star Посмотреть профиль Найти все сообщения от Black_Star
 
Регистрация: 11.07.2016
Сообщений: 300

Первый вариант как-то вообще ничего не поменялось в выводе / При втором Выводит
"products[]":"[Applications,VPN]" А на до бы что бы значение ключа было бы в скобках объекта

Вот
https://jsfiddle.net/ezp2th9g/

Последний раз редактировалось Black_Star, 05.04.2021 в 18:17.
Ответить с цитированием
  #5 (permalink)  
Старый 05.04.2021, 18:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,133

Black_Star,
не понимаю что не так
{
  products[]: "['Applications,Parental controls,VPN']"
}
Ответить с цитированием
  #6 (permalink)  
Старый 05.04.2021, 18:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,133

Black_Star,
может проблема в том что это невозможно
Сообщение от Black_Star
значение ключа было бы в скобках объекта
?

передать можно только строку
Ответить с цитированием
  #7 (permalink)  
Старый 05.04.2021, 19:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,133

Black_Star,
может json?
return formData.append(selectName, JSON.stringify(selectedMultiOptionValues));
Ответить с цитированием
  #8 (permalink)  
Старый 05.04.2021, 19:06
Аватар для Black_Star
Профессор
Отправить личное сообщение для Black_Star Посмотреть профиль Найти все сообщения от Black_Star
 
Регистрация: 11.07.2016
Сообщений: 300

бэку надо строка / По тому и формат такой дикий
Ответить с цитированием
  #9 (permalink)  
Старый 05.04.2021, 19:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,133

Сообщение от Black_Star
бэку надо строка
Сообщение от Black_Star
в скобках объекта
знать бы что вам надо?)))
Ответить с цитированием
  #10 (permalink)  
Старый 05.04.2021, 19:16
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,232

Сообщение от Black_Star
как из значений "products[]":"Applications,VPN", получить значение "products[]":["Applications,VPN"]
Как вариант...
let o = {"products[]":"Applications,VPN"};
o["products[]"]=[o["products[]"]];
console.log(o);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать значения переменной из одного фрейма в другой в Google Chrome Freestyle007 Events/DOM/Window 17 20.06.2019 14:28
Как добавить в массив найденные .find() значения El_Ninio Node.JS 1 26.04.2019 05:46
Как преобразовать массив объектов в массив массивов sovsem-nub Events/DOM/Window 4 12.05.2018 21:56
Как передать в массив перемеенную как ключ массива? фдуч Общие вопросы Javascript 15 11.01.2018 21:21
Как мне достучаться до значения объекта в массиве lawer85 Общие вопросы Javascript 4 14.02.2015 21:12