file.name.split(/\.\D+/g)[0]
file.name.slice(0, file.name.lastIndexOf('.'))
мне нужен сам формат png
file.name.slice(file.name.lastIndexOf('.') + 1)
.file.name.split('.').pop()
.file.name.match(/[^.]+$/)[0]
.file.name.replace(/.*\./, '')
. <select class="b-fruits">
<option>apple</option>
<option>orange</option>
<option>banana</option>
</select>
<select class="b-discounts">
<option data-type="apple">100</option>
<option data-type="apple">200</option>
<option data-type="orange">300</option>
<option data-type="banana">400</option>
</select>
$('.b-fruits').change(function() {
$('.b-discounts')
.val(null)
.find('option')
.hide()
.filter(`[data-type="${$(this).val()}"]`)
.show();
}).change();
// или
const fruits = document.querySelector('.b-fruits');
const discounts = document.querySelector('.b-discounts');
fruits.addEventListener('change', ({ target: { value } }) => {
discounts.value = null;
for (const n of discounts.options) {
n.hidden = n.dataset.type !== value;
}
});
fruits.dispatchEvent(new Event('change'));
transit.$on('response_data', msg => {
this.results = msg.split('\n').filter(Boolean).map(n => JSON.parse(n));
});
const key = 'имя какого-то свойства';
const checkItem = n => n[key] != null;
// собираем новый массив
const newArr = arr.filter(checkItem);
// обновляем существующий
for (let i = 0; i < arr.length; i++) {
if (!checkItem(arr[i])) {
for (let j = i--; ++j < arr.length; arr[j - 1] = arr[j]) ;
arr.pop();
}
}
const keys = [ 'имя какого-то свойства', 'ещё одно', 'и ещё' ];
const checkItem = n => keys.every(k => n[k] != null);
// собираем новый массив
const newArr = [];
for (const n of arr) {
if (checkItem(n)) {
newArr.push(n);
}
}
// обновляем существующий
arr.splice(0, arr.length, ...arr.filter(checkItem));
const checkItem = n => !Object.values(n).some(v => v == null);
// собираем новый массив
const newArr = (function get(i, n = arr[--i]) {
return i >= 0
? get(i).concat(checkItem(n) ? n : [])
: [];
})(arr.length);
// обновляем существующий
arr.length -= arr.reduce((acc, n, i, a) => (
a[i - acc] = n,
acc + !checkItem(n)
), 0);
const obj = arr
.filter(n => n.status === 'approved')
.reduce((p, c) => ({ ...p, message: `${p.message}\n${c.message}` }));
const grouped = arr.reduce((acc, { status, message }) => {
acc[status] = acc[status] || { status, messages: [] };
acc[status].messages.push(message);
return acc;
}, {});
Object.keys(grouped).forEach(n => grouped[n].messages = grouped[n].messages.join('\n'));
const obj = grouped.approved;
одно из вложенных свойств через v-model привязывается к чекбоксу
<...>
при попытке прописать v-if с использованием этого свойства, при его изменении ничего в DOM не меняется
v-model
, при первом изменении состояния чекбокса. А vue, как известно, не может обнаружить добавление свойства объекта. Так что это свойство, чтобы оно стало реактивным, должно изначально присутствовать в объекте, и, раз оно используется для задания состояния чекбоска, то пусть дефолтным значением будет false
.v-model
добавляет отсутствующие свойства как реактивные. i
в момент выполнения a('.add_list > div')[i]
будет равно 0
, 1
, 2
, и т.д., то вы сильно ошибаетесь. Оно всегда будет равно 10
. Объявите i
с помощью let
вместо var
.const items = document.querySelectorAll('.add_list > div');
const numItemsToUpdate = 10;
const update = (el, index) =>
setTimeout(() => el.style.opacity = 1, index * 30);
Array.prototype.slice.call(items, 0, numItemsToUpdate).forEach(update);
// или
for (let i = 0; i < Math.min(items.length, numItemsToUpdate); i++) {
update(items[i], i);
}
// или
for (const [ i, n ] of items.entries()) {
if (i === numItemsToUpdate) {
break;
}
update(n, i);
}
Math.floor(Date.now() / 1000);
let time = Math.floor(Date.now() / 1000);
setInterval(() => time = Math.floor(Date.now() / 1000), 1000);
<Product product={this.props.product} />
{this.props.product.map(n => <Product key={n.id} product={n} />)}
{Object.keys(anyIcons).map(type => (
<Category>
<CategoryType>
{type === 'people' && 'PEOPLE'}
{type === 'nature' && 'ANIMALS & NATURE'}
</CategoryType>
{anyIcons[type].map(icon => (
<RedactorEmojiItem data={icon.code}>{icon.title}</RedactorEmojiItem>
))}
</Category>
))}
data: () => ({
activeClass: '',
...
}),
<p :class="activeClass"></p>
data: () => ({
classes: [ 'какой-то класс', 'ещё класс', ... ],
...
}),
<p
v-for="n in classes"
@mouseover="activeClass = n"
@mouseout="activeClass = ''"
>