swa()
забыли привести, как вы начали её писать?target
– элемент, по которому кликнули. В данном случае это тег <a>
parent
) – это div. А в нём уже найти элемент H3:const title = event.target.parent.querySelector('h3').innerText;
redraw_table()
в коллбэке по успешному завершению выполнения запроса. id
как особый, и добавлять к нему в массив match
другие похожие — все id
с одинаковыми прочими значениями равноправны. Поэтому предлагаю как результат просто массивы, где собраны id
с совпадающими свойствами.id
, упорядоченных по алфавиту, и значений. Этот отпечаток будет одинаков у совпадающих объектов, несмотря на разные id
(и разный порядок ключей).{ id, hash }
, затем составляем «словарь», где ключи – хэши, а значения – Set'ы с id
, у которых оказался одинаковый хэш. Set'ы – чтобы не повторялись одинаковые id
.const arr = [
{ id: 1, we: 'cn', le: null },
{ id: 2, le: null, we: 'cn' },
{ id: 3, we: 'cn', le: 'car' },
{ id: 1, we: 'cn', le: null },
];
const dict = arr
.map(({ id, ...obj }) => {
const keys = Object.keys(obj).sort();
const ordered = keys.reduce((acc, c) => {
acc[c] = obj[c];
return acc;
}, {});
return { id, hash: JSON.stringify(ordered) };
})
.reduce((acc, c) => {
(acc[c.hash] ??= new Set()).add(c.id);
return acc;
}, {});
Object.values(dict).map(s => [...s]); // [ [1, 2], [3] ]
H
определяет как раз оттенок. Установите опытным путём в Фотошопе, какой диапазон значений H
можно отнести к «оттенкам синего (голубого)». S
(насыщенность) и V
(яркость) не влияют на «цвет» оттенка. index.js
, в который таки прописать каждый файл в папке.// papka/index.js
import a from './a';
import b from './b';
// ...
export { a, b, };
// main.js
import * as Papka from '/papka';
const { a, b } = Papka;
console.log(a, b);
// или
Object.entries(Papka).forEach(([key, value]) => console.log(key, value));
const get_element_list = id => {
return axios({
url: `${url_hook}/lists.element.get.json`,
method: 'post',
data: {
IBLOCK_TYPE_ID: 'lists',
IBLOCK_ID: 17,
filter: {
PROPERTY_70: 1,
PROPERTY_74: id,
},
},
}).then(response => {
const result = response.data.result[0];
console.log(result, response.status, response.data); // посмотрите, что тут
});
};
localStorage
. id
. На случай, если их перемешают иначе, или добавится новая — полагаться только на порядковый номер в коллекции, i
, не годится: сейчас на 3-м месте одна кнопка, завтра окажется другая, а мы для неё запомнили включённое состояние.id
. Кнопка может быть добавлена или не-добавлена в избранное. Булево значение: true
или false
. Запоминать будем набор пар ключ-значение. Ключ id
, значение true/false. Что-то типа { "abc123": true, "xyz789": false, }
const mostLeastAndTheRest = names => {
const dict = names.reduce((acc, name) => ((acc[name] ??= 0), acc[name]++, acc), {});
// { "Женя": 3, "Иван": 1, "Виктор": 4, "Константин": 1 }
const values = Object.values(dict);
const max = Math.max(...values);
const min = Math.min(...values);
const entries = Object.entries(dict);
const winners = entries.filter(([_, value]) => value === max).map(([key, _]) => key);
const losers = entries.filter(([_, value]) => value === min).map(([key, _]) => key);
const rest = Object.keys(dict).filter(name => !winners.includes(name) && !losers.includes(name));
return { winners, losers, rest };
};
mostLeastAndTheRest(['Женя', 'Женя', 'Иван', 'Женя', 'Виктор', 'Виктор', 'Константин', 'Виктор', 'Виктор']);
/*
{
"winners": [ "Виктор" ],
"losers": [ "Иван", "Константин" ],
"rest": [ "Женя" ]
}
*/
xss = [(1, 'a'), (2, 'b'), (3, 'c')]
flat = [x for xs in xss for x in xs]
print(flat) # [1, 'a', 2, 'b', 3, 'c']
via // массив 1..99
const range = Array(99)
.fill()
.map((_, i) => i + 1); // массив 1..99
// 6 неповторяющихся выигрышных
const win = Array(6)
.fill()
.map(() => range.splice(Math.floor(Math.random() * range.length), 1).pop())
.sort((a, b) => a - b);
// [ 1, 55, 69, 76, 91, 92 ]
Для выбора выпавших чисел игрока этот же range
уже использовать нельзя – в нём не хватает 6 чисел. children
, в нём найдите indexOf
кликнутого элемента.SRC="/var/tmp/nu-pogodi.mp4"
ffmpeg \
-i "$SRC" \
-vf "hflip" \
-c:v libx264 \
-c:a copy \
"$SRC-flip.mp4"
Медленная и тяжёлая часть работы тут — пережатие видео в h264. Его не избежать, к сожалению.