Coding Task (JavaScript)
const nominals = [10, 50, 100, 200, 500, 1000, 2000, 5000];
function atm(amount, nominals) {
}
console.log(atm(12830, nominals)); // ["5000x2", "2000x1", "500x1", "200x1", "100x1", "10x3"]
React Refactoring Task
Отрефакторить реакт компонент
Есть реализация компонента, от которого требуется 2 вещи:
- выводить текущее значение вертикального скролла окна (window.scrollY)
- после монтирования асинхронно получить число и вывести его
Нужно найти, объяснить и исправить как можно больше проблем в реализации
import React, { useState, useEffect } from 'react';
// имитация запроса к серверу. просто получаем число асинхронно
const fetchRandomNumber = () => Promise.resolve(Math.random());
const NumberAndScroll = () => {
const [number, setNumber] = useState();
const [scroll, setScroll] = useState();
useEffect(async () => {
const number = await fetchRandomNumber();
setNumber(number);
window.addEventListener('scroll', () => setScroll(window.scrollY));
return () => window.removeEventListener('scroll', () => setScroll(window.scrollY));
}, );
return (
<div>
<div> Number: { number } </div>
<div> Scroll: { scroll } </div>
</div>
)
}