Пропустить объекты, которые не существуют (фильтр) React-Native - PullRequest
2 голосов
/ 13 июня 2019

У меня есть ситуация, когда я зацикливаюсь на массиве объектов. Скажем, когда существует более двух объектов, если первый объект не существует, как пропустить это и перейти к следующему?

Вот цикл:

 for (i = 0; i < this.myInputFields.myTextFields.length; i++) {

        if (!this.myInputFields.myTextFields[i] || this.myInputFields.myTextFields[i] == null || this.myInputFields.myTextFields[i] === '') {
           //go to next
        }

        if (this.myInputFields.myTextFields[i].key) {
             data[this.myInputFields.myTextFields[i].key] = this.myInputFields.myTextFields[i].inputValues;
        }

    }

Вот распечатанный массив, когда первый объект не существует:

    [ ,
   { type: 'textfield',
     placeholderText: 'Enter your number',
     title: '*number',
     key: 'signedByNumber',
   inputType: 'numbers',
    inputValues: '553' } ]

Как видите, перед этим объектом перед запятой стоит запятая и пробел, поэтому я не знаю, как пропустить этот пробел.

1 Ответ

3 голосов
/ 13 июня 2019

Этот фрагмент кода позволит вам пропустить элементы, чьи пустые.

for (let i = 0; i < this.myInputFields.myTextFields.length; i += 1) {
  if (this.myInputFields.myTextFields[i]) {
    // print valid element if you want or do whatever you want
    data[this.myInputFields.myTextFields[i].key] = this.myInputFields.myTextFields[i].inputValues;
  }
}

Более эффективный способ -

let array = this.myInputFields.myTextFields.filter(item => item !== undefined); // you can eliminate all undefined elements with filter method

for (let i = 0; i < array.length; i += 1) {
  data[array[i].key] = array[i].inputValues;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...