Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Создать ассоциативный массив json (https://javascript.ru/forum/dom-window/73625-sozdat-associativnyjj-massiv-json.html)

Янковиц 30.04.2018 18:17

Создать ассоциативный массив json
 
Есть разметка:
<div id="boxes">
  <div class="box"><span class="one">1</span><span class="one">10</span></div>
  <div class="box"><span class="two">2</span><span class="two">20</span></div>
</div>

Как получить ассоциативный массив на json?
var array= {
  "0": [
    {
      "first": 1,
      "second": "10"
    },
    {
      "first": 2,
      "second": "20"
    }
  ]
};

рони 30.04.2018 18:39

Янковиц,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
 </head>

<body>
<div class="boxes">
  <div class="box"><span class="one">1</span><span class="one">10</span></div>
  <div class="box"><span class="two">2</span><span class="one">20</span></div>
</div>
<script>
var obj = [].reduce.call(document.querySelectorAll(".boxes"), function(obj, boxes, i) {
    obj[i] = [].reduce.call(boxes.querySelectorAll(".box"), function(arr, box) {
        var span = box.querySelectorAll("span");
        arr.push({
            first: +span[0].textContent,
            second: +span[1].textContent
        });
        return arr;
    }, []);
    return obj;
}, {});
obj = JSON.stringify(obj);
alert(obj);
</script>
</body>
</html>


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