function getChange(num) {
const coins = [10, 5, 2, 1];
return coins.map((c) => {
const n = Math.floor(num / c);
num -= n * c;
return n;
});
}
Перепишите её циклом while
или for
. Тут тоже цикл: метод массива map()
перебирает каждый его элемент, выполняя для очередного значения функцию внутри и заменяя элемент на возвращённое значение./news/20210619/party/
– тут «ключ» статьи 20210619/party
– почему бы и вам не брать это как уникальный ключ. К тому же, лексикографическая сортировка расставит статьи в хронологическом порядке, по датам.if (a > b) console.log("a win");
if (a > b) {
console.log("b lost");
console.log("a won");
}
То же с for ()
, да и с просто-кодом.class
или литералом объекта.function
, а затем про круглые скобки ) key не принимает значение переменных
const arr = [];
const key = "xxx";
const value = "yyy";
// подробно:
const item = {};
item[key] = value;
// или покороче:
const item = {[key]: value};
// в массив
arr.push(item);
arr // [{xxx: "yyy"} ]
const lsKey = "mytable";
// Сохранить в LS:
localStorage.setItem(lsKey, JSON.stringify(arr));
// Получить из LS:
const arr = JSON.parse(localStorage.getItem(lsKey)) || [];
state.table = {}; // не квадратные, а фигурные
state.table[url] = value;
const arr = []; // массив! Но «в JS всё — объект»
arr.X = "Y"; // можем себе позволить!
console.log(arr.X); // "Y" ура-а, хакнули JavaScript!
JSON.stringify(arr) // [] - пустой массив, облом.
R < 0xF2 || B < 0xF2 || B < 0xF1
Здесь косяк в том, что один компонент (напр. R) чуть-меньше порога, и остальные много выше него – дадут цвет более светлый, а этот подход посчитает его темнее.['f1', 'f2', 'f3']
. const formatDate = (str) => new Intl.DateTimeFormat('ru-RU', {year: '2-digit', month: 'short', day: 'numeric'})
.format(new Date(str.split('-').reverse().join('-')));
formatDate('20-05-2021') // "20 мая 21 г."
label.form-text-field
с помощью querySelectorAll()
.[...allLabels]
map()
, формируя из очередного label
элемент выходного массива с текстамиdisable_web_page_preview
в методе sendMessage()
JSON.parse(str)
и получить массивindexOf(valueToDelete)
splice()
этот элементJSON.stringify(arr)
setItem(key, value)
let quantity = 1; // изначально 1
// цены в тыс. для числа-индекса (считается от 0: 0, 1, 2, ... 9)
const prices = [0, 250, 245, 240, 238, 235, 230, 225, 220, 215]; // 1..9
// клик на плюс
plus.addEventListener('click', (e) => {
e.preventDefault();
fixPrice(+1);
});
// клик на минус
minus.addEventListener('click', (e) => {
e.preventDefault();
fixPrice(-1);
});
// пересчет цены
const fixPrice = (delta) => {
// обновить количество
quantity += delta; // +/- 1
quantity = Math.max(1, quantity); // не меньше 1
quantity = Math.min(9, quantity); // не больше 9
// показать новые значения
person.value = quantity; // показать новое число персон
price.textContent = `${prices[quantity]} 000 ₸`; // показать цену
}
const crazyJoin = (a, b) => Object.values(b)
.reduce((acc, c) => !!~acc.indexOf(c) ? acc : (acc.push(c), acc), Object.values(a))
.reduce((acc, c, i) => (acc[i] = c, acc), {});
crazyJoin(a, b) // {"0":1,"1":2,"2":3,"3":4,"4":5}