Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Строку в объект (https://javascript.ru/forum/misc/77355-stroku-v-obekt.html)

tk.stas 22.04.2019 20:07

Строку в объект
 
Есть строка - t=дата&s=сумма&ds=и тд.
Есть ли простой способ преобразовать ее в объект?

рони 22.04.2019 20:29

tk.stas,
let str = "t=дата&s=сумма";
       let obj = str.split("&").reduce((ob, v) => ([a,b]=v.split("="),ob[a]=b,ob), {});
       console.log(obj)

Malleys 22.04.2019 20:39

const str = "t=дата&s=сумма";
const obj = new URLSearchParams(str);
console.table([...obj]);

tk.stas 22.04.2019 21:07

Цитата:

Сообщение от Malleys (Сообщение 506875)
const str = "t=дата&s=сумма";
const obj = new URLSearchParams(str);
console.table([...obj]);


А в старых браузерах будет работать URLSearchParams()?

Malleys 22.04.2019 21:16

Цитата:

Сообщение от tk.stas
А в старых браузерах будет работать URLSearchParams()?

Поддержка очень хорошая... https://caniuse.com/#search=URLSearchParams (учитывая, что мы живём в эпоху автоматически обновляемого ПО)

Если нужна поддержка супер-старинных браузеров, то можете использовать polyfill.io
<script crossorigin="anonymous" src="https://polyfill.io/v3/polyfill.min.js?features=URL"></script>

tk.stas 22.04.2019 21:35

Цитата:

Сообщение от рони (Сообщение 506874)
tk.stas,
let str = "t=дата&s=сумма";
       let obj = str.split("&").reduce((ob, v) => ([a,b]=v.split("="),ob[a]=b,ob), {});
       console.log(obj)

Хром версии 39, ругается на '=>'

рони 22.04.2019 21:42

tk.stas,
var str = "t=дата&s=сумма";
var obj = str.split("&").reduce(function(ob, v)
  {
    v = v.split("=");
    ob[v[0]] = v[1];
    return ob
  }, {}
);

console.log(obj)

tk.stas 22.04.2019 21:45

Цитата:

Сообщение от рони (Сообщение 506883)
tk.stas,
var str = "t=дата&s=сумма";
var obj = str.split("&").reduce(function(ob, v)
  {
    v = v.split("=");
    ob[v[0]] = v[1];
    return ob
  }, {}
);

console.log(obj)

Большое спасибо!

Aetae 22.04.2019 21:57

>Хром версии 39
И у кого такая версия?

tk.stas 22.04.2019 22:19

Цитата:

Сообщение от Aetae (Сообщение 506886)
>Хром версии 39
И у кого такая версия?

Android 5.1 WebView работает на 39 версии и в основном не обновляется.


Часовой пояс GMT +3, время: 19:32.