#javascript #arrays #angular #ngfor #angular-ng-if
#javascript #массивы #angular #ngfor #angular-ng-if
Вопрос:
Я использую цикл *ngFor, но я хочу, чтобы цикл выполнялся только для определенных индексов, определенных в массиве (т.Е. indexArray = [454,640] ).
Если я попробую это, и indexArray содержит два или более элементов, это не сработает. Но если массив имеет только один элемент (т.Е. indexArray=[565]), он работает.
<div *ngFor="let item of items; index as i">
<table *ngIf="i == indexArray">
Комментарии:
1. Итак, вы хотите отображать только элементы с индексами 454 и 640 из
items
массива? Это ваша цель?2. Используйте <table *ngIf=»indexArray.indexOf(i) >= 0″>; В вашем случае, вы пытались сравнить с
==
этим оператором, который преобразует операнд справа в число (Number([565]) => 565
поэтому он равен 565)
Ответ №1:
Вы можете использовать .indexOf(i)
и проверить, есть ли она в вашей indexArray
переменной.
<div *ngFor="let item of items; index as i">
<table *ngIf="indexArray.indexOf(i)> -1">
<!-- REST OF THE CODE -->
Ответ №2:
Вы можете сделать следующее:
<div *ngFor="let item of items; index as i">
<table *ngIf="indexArray.includes(i)">
enter code here...
</table>
</div>
Ответ №3:
создайте индексный массив следующим образом
public indexArray: array = [454,640];
сделайте, как показано ниже.
<div *ngFor="let item of items; index as i">
<table *ngIf="indexArray.indexOf(i)> -1">
enter code here...
</table>
</div>
дайте мне знать, если у вас есть какие-либо сомнения.