разобрать вложенный массив javascript

Я предпочитаю, чтобы прослушиватели событий были развернуты модульной функцией, а не сценарием прослушивателя событий уровня document. Итак, мне нравится ниже. Обратите внимание: вы не можете переадресовать элемент с одним и тем же прослушивателем событий, поэтому не беспокойтесь о прикреплении слушателя более одного раза - только один палец.

var iterations = 4;
var button;
var body = document.querySelector("body");

for (var i = 0; i < iterations; i++) {
    button = document.createElement("button");
    button.classList.add("my-button");
    button.appendChild(document.createTextNode(i));
    button.addEventListener("click", myButtonWasClicked);
    body.appendChild(button);
}

function myButtonWasClicked(e) {
    console.log(e.target); //access to this specific button
}

2
задан Trentfrompunchbowl1 28 March 2019 в 00:52
поделиться

3 ответа

перед вызовом axios.post вам необходимо

concrete_cylinders.forEach(x => {
    x.id = parseInt(x.id);
    x.curing = parseInt(c.curing);
});

или, если вы действительно хотите, вы можете сделать это как

axios.post('http://localhost:8123/samples/concrete', {
  air_content: parseFloat(air_content),
  compaction_method: parseInt(compaction_method),
  concrete_cylinders: concrete_cylinders.map(x => {
    x.id = parseInt(x.id);
    x.curing = parseInt(c.curing);
    return x;
  });
});
0
ответ дан Jaromanda X 28 March 2019 в 00:52
поделиться

Вот версия, использующая более новый расширенный синтаксис :

const concrete_cylinders = [
  {
    id: '',
    specimen_name: 'A',
    mould_number: '',
    curing: '1',
    age: '7'
  },
  {
    id: '',
    specimen_name: 'A',
    mould_number: '',
    curing: '1',
    age: '7'
  },
  {
    id: '',
    specimen_name: 'A',
    mould_number: '',
    curing: '1',
    age: '7'
  }
]

const result = concrete_cylinders.map(o => ({
  ...o,
  ...{
    curing: parseInt(o.curing),
    age: parseInt(o.age)
  }
}));

console.log(result);

0
ответ дан brian-lives-outdoors 28 March 2019 в 00:52
поделиться

Вы всегда можете попробовать использовать forEach в массиве перед публикацией. Так, например ...

pojo = {
  air_content: '',
  compaction_method: 1,
  concrete_cylinders: [
    {
      id: '3',
      specimen_name: 'A',
      mould_number: '',
      curing: '1',
      age: 7
    },
    {
      id: '3',
      specimen_name: 'A',
      mould_number: '',
      curing: '1',
      age: 7
    },
    {
      id: '3',
      specimen_name: 'A',
      mould_number: '',
      curing: '1',
      age: 7
    }
  ]
}

pojo.concrete_cylinders.forEach(e => {
  e.id = parseFloat(e.id)
  e.curing = parseInt(e.curing)
//...anything else you want to change before posting
})

Затем передайте объект вашему axios.post

axios.post('http://localhost:8123/samples/concrete', pojo);

Я уверен, что есть способ сделать это в несколько строк, но это должно решить вашу проблему.

0
ответ дан Ras Abdoellah 28 March 2019 в 00:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: