$('label > input').change(function() {
$(this).parent().toggleClass('active', this.checked);
});
functional: true,
render: (h, ctx) => h('div', Array(ctx.props.количествоПовторений).fill(ctx.slots().default)),
<option
v-for="(n, i) in options"
v-text="n"
v-bind="!i && { disabled: true, value: '' }"
></option>
<option disabled value="">выбирай!</option>
<option v-for="n in options">{{ n }}</option>
Если strict не установлен, то при поиске будет использовано нестрогое сравнение.
В случае, если вы сравниваете число со строкой или две строки, содержащие числа, каждая строка будет преобразована в число, и сравниваться они будут как числа.
Значение определяется по начальной части строки. Если строка начинается с верного числового значения, будет использовано это значение. Иначе значением будет 0 (ноль).
map.events.add('boundschange', function() {
map.balloon.setPosition(map.getCenter());
});
map.events.add('actiontickcomplete', function(e) {
const { globalPixelCenter, zoom } = e.get('tick');
map.balloon.setPosition(map.options.get('projection').fromGlobalPixels(globalPixelCenter, zoom));
});
const containerSelector = '.card_options > div';
const itemSelector = '.option';
const activeClass = 'checked';
const toggleItem = item => item
?.closest(containerSelector)
.querySelectorAll(itemSelector)
.forEach(n => n.classList[n === item ? 'toggle' : 'remove'](activeClass));
// можно добавить обработчик клика каждому элементу индивидуально
document.querySelectorAll(itemSelector).forEach(function(n) {
n.addEventListener('click', this);
}, e => toggleItem(e.currentTarget));
// а можно один раз - делегированный, всей странице
document.addEventListener('click', e => {
toggleItem(e.target.closest(itemSelector));
});
$dataStr = file_get_contents('https://corona-virus-stats.herokuapp.com/api/v1/cases/general-stats');
$dataObj = json_decode($dataStr);
$props = [ 'total_cases', 'recovery_cases', 'death_cases' ];
echo implode('<br>', array_map(function($n) use($dataObj) {
return $n.': '.$dataObj->data->$n;
}, $props));
sortedData = sorted(zip(numbers, users), key=lambda n: int(n[0]), reverse=True)
print('\n'.join(f'{i}. {n[0]} {n[1]}' for i, n in enumerate(sortedData, 1)))
print('\n'.join(f'{i}. {n}' for i, n in enumerate(sorted(numbers, key=int, reverse=True), 1)))
const isArithmeticProgression = arr =>
arr.length > 1
? new Set(arr.map((n, i, a) => n - a[i + 1]).slice(0, -1)).size === 1
: !!arr.length;
// или
const isArithmeticProgression = arr =>
!!arr.length && arr.every((n, i, a) => !i || (n - a[i - 1] === a[1] - a[0]));
const arr = Object.values(obj);
. Дальше есть варианты:const result = arr.sort((a, b) => a.position - b.position).map(n => n.color);
const result = arr
.reduce((acc, n) => ((acc[n.position] = acc[n.position] ?? []).push(n.color), acc), [])
.flat();
const result = Object.values(Object.fromEntries(arr.map(n => [ n.position, n.color ])));
const [ items, setItems ] = useState([
{ value: ..., text: '...', checked: false },
{ value: ..., text: '...', checked: false },
...
]);
const onChange = ({ target: { checked, dataset: { index } } }) => {
setItems(items.map((n, i) => i === +index ? { ...n, checked } : n));
};
<form>
{items.map((n, i) => (
<div>
<label>
<input
type="checkbox"
data-index={i}
value={n.value}
checked={n.checked}
onChange={onChange}
/>
{n.text}
</label>
</div>
))}
<button disabled={items.every(n => !n.checked)}>submit</button>
</form>