...
querySnapshot.forEach((doc) => {
console.log(doc.data());
setData((d) = [...d, doc.data()]);
});
...
...
const arr = [];
querySnapshot.forEach((doc) => {
console.log(doc.data());
arr.push(doc.data());
});
setData(arr);
...
Ваш пример не работаета какая ошибка? querySnapshot - это вообще что такое? массив?
Почему пустой?потому что setData выставляет новое значение "где-то там внутри", но переменная data не меняется. Вот когда случится новый рендер, то в нем уже будет новое значение
При таком подходе первый (нулевой) элемент никогда не будет равен самому себе
type Check<T> = {
[Key in ([keyof T] extends [never] ? 'Expected at least one property' : keyof T)]: unknown
};
class Test<T extends Check<T>> {}
type Check<T> = Record<PropertyKey, unknown> & {
[Key in ([keyof T] extends [never] ? 'Expected at least one property' : keyof T)]: unknown
};
да так же, рекурсивно
например, М=3. Пусть P(N) - количество неуспешных последовательностей для М=3. Их есть два непересекающихся набора:
1) все, которые оканчиваются на 01 или 10. Количество таких будет P(N-1), т.е. мы отбрасываем последний элемент и смотрим только предыдущие N-1 бросков
2) все, которые оканчиваются на 100 или 011. Таковых всего P(N-2).
далее берем базовые кейсы
P(1) = 2, последовательности 1 и 0
P(2) = 4, тоже все варианты - 11, 00, 10, 01
ну а P(N) = P(N-1) + P(N-2)
выглядит как удвоенное фибоначчи
для М=4 уже будет 3 слагаемых в рекурсии, и т.д.