Как добавлять элементы в объект js?

285
17 октября 2018, 03:30

Есть глобальные объект, который пытаюсь заполнять на фронте собирая данные из checkbox для отправки на север.

<input class="a" type="checkbox" name="garanty" value="true">
<input class="a" type="checkbox" name="power" value="10kVt">
<input class="a" type="checkbox" name="power" value="5kVt">

JS

var filter_data = {
    items: []
};

$('.a').change(function(){
    if (this.checked == true) {
        var attr_data = [];
        filter_data.items.push({
          taxonomy: this.name,
          terms: attr_data,
        });      
        attr_data.push(this.value);
     console.log(filter_data.items);
    }

  });

На выходе должен быть обьект для php

    $obj = array(
        array(
            'taxonomy' => 'movie_janner',
            'terms'    => array( 'action', 'comedy' ),
        ),
        array(
            'taxonomy' => 'actor',
            'terms'    => array( 103, 115, 206 ),
        )
    );

https://jsfiddle.net/qvr75jyu/7/

Answer 1

var filterData = { 
  items: [] 
}; 
 
 
$('.a').change(function(){ 
 
  if (this.checked == true) { 
     
    // в js принят camelCase 
    const attrData = []; 
    let filterItem = filterData.items.find(el => 
      el.taxonomy === this.name 
    ); 
     
    // проверяем, если у нас уже объект с таким именем 
    if(filterItem) { 
      filterItem.terms.push(this.value); 
    } else { 
      filterData.items.push({ 
        taxonomy: this.name, 
        terms: [this.value], 
      }) 
    } 
 
    console.log(filterData.items); 
  } else { 
    // тут по идее нужно обработать 'выключение' чекбокса, но это если вам нужно 
  } 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<input class="a" type="checkbox" name="garanty" value="true"> 
<input class="a" type="checkbox" name="power" value="10kVt"> 
<input class="a" type="checkbox" name="power" value="5kVt">

READ ALSO
Вывод названия дня в Google Charts

Вывод названия дня в Google Charts

мне нужно вывести название дня в дате в Google Charts

153
Eval где используется?

Eval где используется?

Зачем нужно использовать eval в JavaScript?

143
Как создать модальное окно на React Native?

Как создать модальное окно на React Native?

Получил задание нарисовать модальное окно на React NativeПосле изучения документации и примеров , так и не удаётся показать на экране окно:

174