`:$('#bombfire').html(`
<svg>...</svg>
`);Только в обратных "бэк-тиках" можно текст разбивать на строки. Подробнее про строки и кавычки.const str = ' \
line 1 \
line 2 \
'; reduce() в копилку:const zip = (arr1, arr2) => arr1.reduce(
(acc, head, i) => (acc.push({ ...arr2[i], head }), acc),
[]
);zip(mass1, mass2)
/* [
{ t1: "aa", p1: "lot", head: "zn1" },
{ t1: "ab", p1: "kot", head: "zn2" },
{ t1: "ac", p1: "mot", head: "zn3" },
] */map() тут больше подходит:mass1.map((head, i) => ({ head, ...mass2[i] }))
let mass1 = ["zn1", "zn2", "zn3"]
let mass2 = [
{t1: "aa", p1: "lot"},
{t1: "ab", p1: "kot"},
{t1: "ac", p1: "mot"}
]
let mass3 = []
for (let i = 0; i < mass1.length; i++) {
mass3.push(
Object.assign(mass2[i], {head: mass1[i]})
)
} [...new Map(arr.map((item) => [item["key"], item])).values()]const uniqueIds = [];
arr.filter(element => {
const isDuplicate = uniqueIds.includes(element.key);
if (!isDuplicate) {
uniqueIds.push(element.key);
return true;
}
return false;
});Object.values(
arr.reduce( (c, e) => {
if (!c[e.key]) c[e.key] = e;
return c;
}, {})
);const unique = (arr, key) => {
const keys = new Set();
return arr.filter(el => !keys.has(el[key]) && keys.add(el[key]));
};
unique(arr, 'key')value.- let input = document.getElementsByClassName('form-control');
+ const input = document.querySelector('input.form-control'); 0 0 500 500 - всё будет работать, просто бублик будет в 10 раз меньше.viewBox - задаёт систему координат для вложенных элементов. Т.е. width у тебя 500px - эти 500px, размечены на отрезки от 0 до 50. Т.е. 1 -> 10px, r="15.9" -> r="159px". Всё просто. document.querySelector('.close').addEventListener('click', function(e){
e.stopPropagation()
document.querySelector('.result').insertAdjacentHTML('beforeend', '<div>Close</div>');
});