const str = "смартфон apple iphone 11 256gb dual sim yellow (mwnj2)"
const input = 'смартфон'
str.includes(input) //true
const div = document.createElement('div');
const b = document.createElement('b');
b.textContent = 'привет!';
div.appendChild(b);
/*
обратите внимание, сперва собираем всю начинку в div, и только потом вставляем в документ
наоборот тоже сработает, но при вставке может произойти перерисовка страницы,
и когда вставок много вы рискуете получить тормоза.
*/
document.body.appendChild(div);
// второй способ
const text = Еще привет!;
const htmlStr = `<div><b>${text}</b><div>`;
document.body.insertAdjacentHTML('beforeend', htmlStr);
const ingredients = arr.slice(0, arr.length / 2);
const measures = arr.slice(arr.length / 2);
const result = ingradients.map((ing, i) => ({ ...ing, ...measures[i] }));
const newArr = Array.from(
{ length: arr.length / 2 },
(n, i) => ({ ...arr[i], ...arr[i + arr.length / 2] })
);
const numKeys = new Set(arr.flatMap(Object.keys)).size;
const newArr = arr.reduce((acc, n, i, a) => (
Object.assign(acc[i % (a.length / numKeys)] ??= {}, n),
acc
), []);
// или
const numKeys = Object.keys(Object.assign({}, ...arr)).length;
const numObjs = arr.length / numKeys;
const newArr = Array.from(
{ length: numObjs },
(n, i) => Object.assign({}, ...Array.from(
{ length: numKeys },
(m, j) => arr[j * numObjs + i]
))
);
const newArr = arr.reduce((acc, n) => {
const [ [ k, v ] ] = Object.entries(n);
const i = acc[0][k] = (acc[0][k] ?? -1) + 1;
(acc[1][i] ??= {})[k] = v;
return acc;
}, [ {}, [] ])[1];
function addData(obj) {
data.push(obj)
updateDOM()
data = [];
}
eval()
очень небезопасно и нежелательно:let mul = eval(`${firstNumber} ${operation} ${secondNumber}`);
let mul = (new Function('a', 'b', `return a ${operation} b`))(firstNumber, secondNumber);
`${valutes.map(element => {
return `<div value="USD">${element}</div>`
})}`
const sort = (a, b, result) => {
[a, b] = result > 0 ? [b, a] : [a, b];
}