let counterReducer = (state=initialState, action) => {
let newstate = { ...state };
switch(action.type){
case "INC":
newstate.counter+=action.payload
return newstate
case "DEC":
newstate.counter+=action.payload
return newstate
default:
return newstate
}
}
function findAncestor (el, cls) {
while ((el = el.parentElement) && !el.classList.contains(cls));
return el;
}
document.querySelector(".product__shopcard-btn").closest(".product"); // <div class="product"></div>
let element = document.querySelector(".product__shopcard-btn");
while (!element.classList.contains("product")) {
element = element.parentElement;
if (!element) {
break;
}
}
const find = (node, className) => {
while (node) {
if (node.classList.contains(className)) {
return node;
} else {
node = node.parentElement;
}
}
return null;
}
function createArr(size) {
const arr = [...Array(size)].map(() => Array(size).fill(0));
const mid = (size / 2) | 0;
arr.forEach((n, i) => {
n[i] = n[size - i - 1] = 1;
// если размер чётный, непонятно, где выставлять единицы, так что выставляем только для нечётных
if (size & 1) {
arr[mid][i] = n[mid] = 1;
}
});
// хотя, конечно, есть вариант ставить по два вертикальных и горизонтальных ряда единиц
/*
const mid = (size - 1) / 2;
arr.forEach((n, i) =>
n[i] =
arr[mid | 0][i] =
arr[Math.ceil(mid)][i] =
n[mid | 0] =
n[Math.ceil(mid)] =
n[size - i - 1] =
1);
*/
return arr;
}
console.log(createArr(21).map(n => n.join('')).join('\n'));
100000000010000000001
010000000010000000010
001000000010000000100
000100000010000001000
000010000010000010000
000001000010000100000
000000100010001000000
000000010010010000000
000000001010100000000
000000000111000000000
111111111111111111111
000000000111000000000
000000001010100000000
000000010010010000000
000000100010001000000
000001000010000100000
000010000010000010000
000100000010000001000
001000000010000000100
010000000010000000010
100000000010000000001
меня интересует только единицы измерения
$( '.page' ).each(function(i){
$(this).css('width', secWidth * (i+1));
});
api.jquery.com/jquery.each