Как применить фильтр ко всем объектам во вложенном массиве, используя JavaScript - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть три радиокнопки, и я хочу отображать их в зависимости от значений параметров; они должны применяться к каждому объекту во вложенном массиве.

// how to do the in nested object array for all `ids` and apply `options` 

code:

const id = "trans";
const options = option_values.find(({id:x}) => x===id).options;

[...document.getElementsByClassName("form-check-input")].filter(({
  value
}) => !options.includes(value)).forEach(elem => elem.style.display = 'none');

var option_value2 = [
{
  id:"trans",
  options: ["bank", "credit"]
},
{
  id:"fund",
  options: ["bank"]
}
]

<form>
  <input class="form-check-input" name="sending-${provider.id}" type="radio" id="provider-send-bank transfer-${provider.id}" value="bank" title="bank" checked>
  <input class="form-check-input" name="sending-${provider.id}" type="radio" id="provider-send-credit-${provider.id}" value="credit" title="credit">
  <input class="form-check-input" name="sending-${provider.id}" type="radio" id="provider-send-debit-${provider.id}" value="debit" title="debit">
</form>

1 Ответ

0 голосов
/ 25 апреля 2019
  1. У вас нет массива с именем option_values для вызова метода find. Это должно быть option_value2

     const options = option_values.find(({id:x}) => x===id).options;
    
  2. Вы передаете данные в массив после вызова метода find. Должно быть наоборот.

     var option_value2 = [
     {
       id:"trans",
       options: ["bank", "credit"]
     },
     {
       id:"fund",
       options: ["bank"]
     }
     ]
    
     const options = option_values.find(({id:x}) => x===id).options;
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...