// если гарантируется отсутствие thead и tfoot, или их содержимое также должно учитываться
const { rows } = table;
// если tbody один
const [ { rows } ] = table.tBodies;
// если tbody несколько
const rows = Array.prototype.flatMap.call(table.tBodies, n => [...n.rows]);
// или
const rows = [].concat(...Array.from(table.tBodies, n => [...n.children]));
// или
const rows = table.querySelectorAll('tbody tr');
const middle = arr => arr[arr.length >> 1];
// или
const middle = arr => arr[Math.floor(arr.length / 2)];
// или
const middle = arr => arr[Math.round(~-arr.length / 2)];
// или
const middle = arr => arr[(arr.length - arr.length % 2) / 2];
const cell = middle(middle(rows).cells);
// или
const cell = middle([].reduce.call(rows, (acc, n) => (acc.push(...n.children), acc), []));
// или, без получения строк
const cell = middle(table.querySelectorAll('tbody td'));
span
один раз при запуске скрипта и туда попадает первый span
первого div
.div.addEventListener('click', function(e) {
let span = this.querySelector('span');
set.add(this.textContent);
let arr = [...set];
el1.textContent = arr.join(', ');
sum += +span.textContent;
console.log(span.textContent);
el2.textContent = sum;
})
let result = '-';
let max = 3;
for (let i = 1; i <= max; i++) {
for (let j = 1; j <= i; j++) {
result += 'x';
}
result += '-';
}
for (let i = max - 1; i >= 1; i--) {
for (let j = 1; j <= i; j++) {
result += 'x';
}
result += '-';
}
console.log(result);
let result = '-';
let max = 3;
const count = (max - 1) * 2 + 1;
for (let i = 1; i <= count; i++) {
let cond = i <= max ? i : count - i + 1;
for (let j = 1; j <= cond; j++) result += 'x';
result += '-';
}
console.log(result);
const divider = '-';
const symbol = 'x';
let x = symbol;
let prefix = divider;
let suffix = divider;
for (let i = 0; i < 2; i++) {
prefix += x + divider;
suffix = divider + x + suffix;
x += symbol;
}
let result = prefix + x + suffix;
console.log(result);
let arr = [10, 20, 30, 40, 55, 60, 70];
// Ищем минимальное число в массиве т.к. делитель не может быть больше него
let min = Math.min(...arr);
// Ищем общие делители
let commonDivisors = [];
for (let i = 1; i <= min; i++) {
if (arr.every(num => num % i === 0)) {
commonDivisors.push(i);
}
}
console.log(commonDivisors);
let keys = ['key1', 'key2', 'key3'];
let values = ['value1', 'value2', 'value3', 'value4', 'value5', 'value6'];
let obj = {};
for (let i = 0; i < values.length; i++) {
let key = keys[i % keys.length];
obj[key] = values[i];
}
console.log(obj);
const keys = ['key1', 'key2', 'key3'];
const values = ['value1', 'value2', 'value3', 'value4', 'valu5', 'value6'];
const makeGen = function*(arr) {
let index = 0;
const { length } = arr;
while (true) {
yield arr[index++ % length];
}
}
const keyGen = makeGen(keys);
const valGen = makeGen(values);
const length = Math.max(keys.length, values.length);
const result = Array.from({ length }, () => [keyGen.next().value, valGen.next().value]);
console.log(JSON.stringify(result, null, 2));
/*
[
[
"key1",
"value1"
],
[
"key2",
"value2"
],
[
"key3",
"value3"
],
[
"key1",
"value4"
],
[
"key2",
"valu5"
],
[
"key3",
"value6"
]
]
*/