develop (git pull)
зайти в свою ветку branchTaskName и смержить ее с develop (git merge develop) и продолжать с задачей
const SORT = [
[ 'без сортировки' ],
[ 'цена, по возрастанию', (a, b) => a.price - b.price ],
[ 'цена, по убыванию', (a, b) => b.price - a.price ],
[ 'год создания, по возрастанию', (a, b) => a.formed_in - b.formed_in ],
[ 'год создания, по убыванию', (a, b) => b.formed_in - a.formed_in ],
];
const [ sortType, setSortType ] = useState(0);
const data = useMemo(() => {
const sortFunc = SORT[sortType][1];
return sortFunc ? [...bands].sort(sortFunc) : bands;
}, [ bands, sortType ]);
<select value={sortType} onChange={e => setSortType(e.target.value)}>
{SORT.map((n, i) => <option value={i}>{n[0]}</option>)}
</select>
function n2text(n) {
const texts = {
0: 'нулевая',
1: 'первая',
2: 'вторая',
3: 'третья',
4: 'четвертая',
5: 'пятая',
6: 'шестая',
7: 'седьмая',
8: 'восьмая',
9: 'девятая',
10: 'десятая',
11: 'одиннадцатая',
12: 'двенадцатая',
13: 'тринадцатая',
14: 'четырнадцатая',
15: 'пятнадцатая',
16: 'шестнадцатая',
17: 'семнадцатая',
18: 'восемнадцатая',
19: 'девятнадцатая',
20: 'двадцатая',
30: 'тридцатая',
40: 'сороковая',
50: 'пятидесятая',
60: 'шестидесятая',
70: 'семидесятая',
80: 'восьмидесятая',
90: 'девяностая',
100: 'сотая',
};
const texts0 = {
20: 'двадцать',
30: 'тридцать',
40: 'сорок',
50: 'пятьдесят',
60: 'шестьдесят',
70: 'семьдесят',
80: 'восемьдесят',
90: 'девяносто',
100: 'сто',
};
if (n > 200) {
return '';
}
let str = [];
if (n > 100) {
str.push(texts0[100]);
n = n % 100;
}
if (n === 100) {
return texts[100];
}
if (n < 20 && n > 0) {
str.push(texts[n]);
} else {
if (n % 10 === 0) {
str.push(texts[n]);
} else {
str.push(texts0[Math.floor(n / 10) * 10]);
str.push(texts[n % 10]);
}
}
str = str.join(' ');
return str[0].toUpperCase() + str.substr(1);
}
for (let i = 0; i < 20; ++i) {
let n = Math.floor(Math.random() * 199);
console.log(n, n2text(n));
}