function plainArray($arr, $keys = []) {
$result = [];
foreach ($arr as $k => $v) {
$keys[] = $k;
$result += is_array($v)
? plainArray($v, $keys)
: [ implode('__', $keys) => $v ];
array_pop($keys);
}
return $result;
}
arr = string.split('|')
arr[1], arr[2] = arr[2], arr[1]
newString = '|'.join(arr)
import re
newString = re.sub(r'(\|\d+)(\|\d+)', r'\2\1', string, 1)
return {
...state,
plans: state.plans.map(n => {
const item = n.find(m => m.id === action.id);
return item
? n.map(m => m === item ? { ...m, value: action.value } : m)
: n;
}),
};
false
, тогда ничего не делаете, по умолчанию будет отрендерен чекбокс, если true
- передаёте в соответствующий слот что там вам надо:data: () => ({
событиеНаступило: false,
...
}),
@событие="событиеНаступило = true"
<v-data-table>
<template v-if="событиеНаступило" #item.data-table-select>
здесь размещаете контент, который должен отображаться вместо чекбоксов
</template>
...
<v-data-table>
<template #item.data-table-select="{ item, isSelected, select }">
<div v-if="item.событиеНаступило">hello, world!!</div>
<v-simple-checkbox
v-else
:value="isSelected"
@input="select($event)"
></v-simple-checkbox>
</template>
...
const count = arr.reduce((acc, n) => (acc[n] = (acc[n] ?? 0) + 1, acc), {});
const newArr = arr.map(n => count[n] > 1 ? newValue : n);
// или
const newArr = arr.map(function(n) {
return this.get(n) ? newValue : n;
}, arr.reduce((acc, n) => acc.set(n, acc.has(n)), new Map));
// или
const newArr = arr.map((n, i, a) => a.indexOf(n) !== a.lastIndexOf(n) ? newValue : n);
arr.forEach(function(n, i, a) {
a[i] = this.get(n) > 1 ? newValue : n;
}, arr.reduce((acc, n) => acc.set(n, -~acc.get(n)), new Map));
// или
const duplicates = arr.reduce((acc, n) => (acc[n] = acc.hasOwnProperty(n), acc), {});
arr.splice(0, arr.length, ...arr.map(n => duplicates[n] ? newValue : n));
// или
Object
.values(arr.reduce((acc, n, i) => ((acc[n] ??= []).push(i), acc), {}))
.forEach(n => n.length > 1 && n.forEach(i => arr[i] = newValue));
$('.payment-innovation .item').css('opacity', 0);
$('.payment-innovation .list-block__head').click(function() {
const $this = $(this);
const $items = $this.closest('.list-block').find('.item');
const visible = $this.toggleClass('visible').hasClass('visible');
const duration = 400;
$items.each((i, n) => $(n)
.delay((visible ? i : $items.length - i - 1) * duration)
.animate({ opacity: +visible }, duration)
);
}).click();
v-model="dialog_destroy"
), то при открытии любого из них открываются все и вы всегда видите только последний - он скрывает собой остальные.data: () => ({
showDialog: {},
...
}),
<v-dialog v-model="showDialog[item.свойствоИмеющееУникальныеЗначенияДляКаждогоItem]">
<v-btn @click="showDialog[item.свойствоИмеющееУникальныеЗначенияДляКаждогоItem] = false">Отменить
<v-dialog v-model="item.showDialog">
<v-btn @click="item.showDialog = false">Отменить
data: () => ({
dialogData: null,
...
}),
<v-data-table>
<template #item.action="{ item }">
<v-btn @click="dialogData = item">Удалить контакт</v-btn>
</template>
</v-data-table>
<v-dialog :value="!!dialogData" @input="dialogData = $event">
<span>Удалить контакт: @{{ dialogData?.contact_name }}</span>
<v-btn :href="dialogData?.destroy_link">Подтвердить</v-btn>
<v-btn @click="dialogData = null">Отменить</v-btn>
</v-dialog>
functional: true,
render(h, ctx) {
return h('div', {
class: 'col-12',
}, [
h('input', {
class: [ ctx.data.class, ctx.data.staticClass ],
}),
]);
},
const utm = Object.fromEntries(Array.from(
location.search.matchAll(/utm_(.+?)=([^&]*)/g),
n => n.slice(1)
));
// или
const utm = [...new URLSearchParams(location.search)].reduce((acc, n) => (
n[0].startsWith('utm_') && (acc[n[0].slice(4)] = n[1]),
acc
), {});
keys = [ 'to_user', 'from_user' ]
values = [ n[k] for n in log for k in keys ]
sex: bool, fired: bool
sex: null,
fired: false
console.log(this.state.fired.checked);
changeInputHandler = ({ target: t }) => {
this.setState(() => ({
[t.name]: t.type === 'checkbox' ? t.checked : t.value,
}));
}
const [ active, setActive ] = useState(null);
{items.map((n, i) => (
<FirstWindowItems
item={n}
isActive={active === i}
onClick={() => setActive(i)}
/>
))}
function FirstWindowItems({ item, isActive, onClick }) {
return (
<div className={`window__items ${isActive ? 'active' : ''}`} onClick={onClick}>
...
.window__items.active {
здесь стили для активного элемента
}
const $slider1 = $('.slider-nav').slick({
...
}).on('beforeChange', function(e, slick, currSlide, nextSlide) {
$slider2.slick('slickGoTo', nextSlide + 1);
});
const $slider2 = $('.slider-for').slick({
...
}).on('beforeChange', function(e, slick, currSlide, nextSlide) {
$slider1.slick('slickGoTo', nextSlide - 1);
});