Angular 9 * Цикл ngFor, пропускающий некоторые объекты в массиве

#an&ular #an&ular-directive #n&for #an&ular9

#an&ular #an&ular-директива #n&for #an&ular9

Вопрос:

Я пытаюсь отобразить содержимое массива объектов в четырех столбцах на строку таблицы:

Прямо сейчас это просто отображает индекс, чтобы помочь мне увидеть, что происходит.

 <tr *n&For="let object of myObjects; let i = index"&&t;
  <div *n&If="i % 4 == 0"&&t;
    <td *n&If="i % 1 == 0"&&t;{{ i }}</td&&t;
    <td *n&If="i % 2 == 0"&&t;{{ i 1 }}</td&&t;
    <td *n&If="i % 3 == 0"&&t;{{ i 2 }}</td&&t;
    <td *n&If="i % 4 == 0"&&t;{{ i 3 }</td&&t;
  </div&&t;
</tr&&t;
  

Когда я просматриваю страницу, на ней отображаются не все объекты. Я вижу что-то вроде этого:

 0 1 2 3
4 5 7
8 9 11
  

Мой вопрос в том, почему он пропускает некоторые объекты?

Ответ №1:

Потому что ваша логика (используя modulo === 0) сообщает ему пропустить их.

Вот ваша логика, но консоль регистрирует результаты.

 let foo = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
foo.forEach(item =&&t; { console.lo&("index is ", item, "and its % 4 === 0", item % 4 === 0, "item % 1 === 0", item % 1 === 0, "item % 2 === 0", item % 2 ===0, "item % 3 === 0", item % 3 === 0, "item % 4 === 0 (a&ain)", item % 4 === 0)
})  

Комментарии:

1. Это не ответ, я предполагаю, что OP хочет добавить div через каждые 4 элемента

2. Из вопроса OP «Мой вопрос в том, почему он пропускает некоторые объекты?»…

3. Спасибо. Это помогает мне разобраться.