Ошибка вызова $ el с функцией forEach () в JavaScript - PullRequest
0 голосов
/ 18 апреля 2020

Я не могу использовать значение элемента внутри функции forEach ()

var filtered = rawData.map(function(x){
        return {
          state       : x.state,
          active      : x.active,
          deaths      : x.deaths,
          recovered   : x.recovered
        };
})

Использование приведенного выше в следующем l oop:

for(i=1; i<=filtered.length; i++){
        let tr = document.createElement("tr");
        tr.setAttribute("align","center");    
        document.querySelector('tbody').appendChild(tr);

        ndata = ['state', 'active', 'deaths', 'recovered']
        ndata.forEach((el, k) => {
          let td$k = document.createElement('td');
          td$k.innerText = filtered[i].$el;        // <-- ERROR //
          tr.appendChild(td$k);
        }); 

Браузер выдает вернуться к этой ошибке: app. js: 201 Uncaught TypeError: Невозможно прочитать свойство '$ el' из неопределенного

Ответы [ 2 ]

1 голос
/ 18 апреля 2020

Возможно, я что-то упустил, но это помогло мне динамически вызывать значение ... Мне также пришлось запустить l oop при i = 0 (вместо i = 1 выше).

ndata = ['state', 'active', 'deaths', 'recovered']
            ndata.forEach((el, k) => {
                let td$k = document.createElement('td');
                td$k.innerText = filtered[i][el];       
                tr.appendChild(td$k);
            });
0 голосов
/ 18 апреля 2020

Мы можем получить доступ к свойствам объекта с помощью точечной нотации или скобочной нотации, например:

object.property
object['property']

Но здесь el не является свойством объекта filtered[i]. Это ключевое значение в виде строки, поэтому нам нужно использовать скобочные обозначения, например:

td$k.innerText = filtered[i][el];

Для получения дополнительной информации проверьте документы по Accessors .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...