data() {
return {
selectedValue: this.initialValue,
};
},
set(val) {
this.$emit('input', val);
},
$key = 'shipping_address';
$_arr1 = array_combine(array_column($arr1, $key), $arr1);
$result = [
...array_map(fn($n) => $n + ($_arr1[$n[$key]] ?? []), $arr2),
...array_diff_key($_arr1, array_combine(array_column($arr2, $key), $arr2))
];
const result = [...arr]
.sort((a, b) => a.length - b.length)
.reduce((acc, n) => (
acc.some(m => n.includes(m)) || acc.push(n),
acc
), []);
const result = arr.filter((n, i, a) => !a.some((m, j) => i !== j && n.includes(m)));
forcePage={currentPage}
).const className = 'doc';
.const wrapFirstWord = el =>
el.innerHTML = el.innerText.replace(/\S+/, '<span>$&</span>');
// или
const wrapFirstWord = el =>
el.innerHTML = el.innerHTML
.split(' ')
.map((n, i) => i ? n : `<span>${n}</span>`)
.join(' ');
// или
function wrapFirstWord(el) {
const i = el.textContent.indexOf(' ');
const span = document.createElement('span');
span.append(el.textContent.slice(0, i));
el.replaceChildren(span, el.textContent.slice(i));
}
// или
function wrapFirstWord({ childNodes: [ text ] }) {
const [ , first, rest ] = text.nodeValue.match(/(\S+)(.*)/);
const span = document.createElement('span');
span.appendChild(new Text(first));
text.nodeValue = rest;
text.parentNode.insertBefore(span, text);
}
document.querySelectorAll(`.${className}`).forEach(wrapFirstWord);
// или
for (const n of document.getElementsByClassName(className)) {
wrapFirstWord(n);
}
$arr = [ '...', '...', ... ];
$newStr = preg_replace('~'.implode('|', $arr).'~ui', '', $str);
mounted() { console.log(this.props)
onClick : () => { console.log(this.props);
if(num=>5&&num<=10){
=>
- никакой это не оператор сравнения.true
. <transition-group name="slide" tag="div" class="table-body">
<div class="table-tr" v-for="item in items" :key="item.id">
<div class="table-td">{{ item.id }}</div>
<div class="table-td">{{ item.user }}</div>
</div>
</transition-group>
.table-tr {
transition: 0.5s;
}
.table-body {
overflow: hidden;
}
.slide-enter-from {
transform: translateY(-100%);
}
.slide-enter-to {
transform: translateY(0);
}
const handlers = new Map();
function updateHandler(el, binding) {
el.removeEventListener('input', handlers.get(el));
const handler = () => {
const value = el.value.replace(/\D/g, '').slice(0, binding.value);
if (value !== el.value) {
el.value = value;
el.dispatchEvent(new Event('input'));
}
};
handler();
handlers.set(el, handler);
el.addEventListener('input', handler);
}
Vue.directive('maxlen', {
bind: updateHandler,
update: updateHandler,
unbind(el) {
el.removeEventListener('input', handlers.get(el));
handlers.delete(el);
},
});
<input type="number" v-maxlen="2">
page - 1
и page + 1
. xAxes: [{
и yAxes: [{
на x: {
и y: {
.format: 'DD/MM/YYYY'
. Нужное вам свойство называется иначе, замените на parser: 'DD/MM/YYYY'
.scaleLabel: {
(как и его внутреннее содержимое) - смотрите сами. methods: {
onCellClick(item) {
console.log(item.digit);
},
<td @click="onCellClick(item)">
$grouped = [];
foreach ($arr as $key => $items) {
$group = [
'UF_SUBJECT' => $items[0]['UF_SUBJECT'],
'UF_QUANTITY' => 0,
'UF_BRAK' => 0,
'UF_WAREHOUSENAME' => [],
];
foreach ($items as $item) {
$group['UF_QUANTITY'] += $item['UF_QUANTITY'];
$group['UF_BRAK'] += $item['UF_BRAK'];
$group['UF_WAREHOUSENAME'][] = $item['UF_WAREHOUSENAME']." (".$item['UF_QUANTITY']." шт)";
}
$group['UF_WAREHOUSENAME'] = implode(', ', $group['UF_WAREHOUSENAME']);
$grouped[$key] = $group;
}
сбрасывается на 0 и начинает отсчет с предыдущего состояния
const pick = (obj, keys) => Object.fromEntries(keys.map(k => [ k, obj[k] ]));
const newArr = arr.map(n => pick(n, keys));
const pick = (obj, keys) =>
Object.fromEntries(Object.entries(obj).filter(m => keys.includes(m[0])));
// или
const pick = (obj, keys) =>
keys.reduce((acc, n) => (obj.hasOwnProperty(n) && (acc[n] = obj[n]), acc), {});