Как сделать случайным образом отображение * ngFor? - PullRequest
0 голосов
/ 31 марта 2020

Итак, я делаю приложение, которое требует от меня отображения элементов в случайном порядке, но из-за характера приложения мне не разрешено менять ngFor. Так как же сделать так, чтобы ngFor отображал его содержимое случайным образом?

Ответы [ 2 ]

1 голос
/ 31 марта 2020

почему бы вам не изменить индексирование в ts, я выделю элемент, к которому вы применяете рандомизацию

Мне нравится

Считайте, что elem является оригинальным массивом

const newElemArr = [];

getRandomElem() => {
    const pushElem(elem[getRandomValue(0, elem.length)]);
    newElemArr.push(pushElem);
    elem.splice(elem.indexOf(pushElem, 1);
    if (elem.length === 1) {
        newElemArr.push(pushElem);
    } else {
         getRandomElem();
    }
}


getRandomValue(min, max) { // min and max included 
     return Math.floor(Math.random() * (max - min + 1) + min);
}

Здесь я делаю рекурсивную генерацию случайного значения, получаю значение этого индекса из исходного массива и pu sh в новый массив.

Таким образом, новый массив всегда будет иметь случайные значения.

0 голосов
/ 31 марта 2020

Вы можете попробовать что-то вроде этого

<div *ngFor="let element of elements; let i= index">
    <div *ngIf="(i+ 1) % number == 0">
       {{ element }}
     </div>
</div>

В машинописном тексте вы можете добавить

number = Math.floor(Math.random() * 10) + 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...