function one() {
console.log('AAAAAAAAAA');
one = () => {};
}
function once(f) {
let called = false;
return function() {
if (!called) {
called = true;
return f.apply(this, arguments);
}
};
}
const one = once(function() {
console.log('AAAAAAAAAA');
});
plotOptions: {
line: {
connectEnds: false
}
}
const newArr = arr
.reduce((acc, n, i, a) => (
a[i - 1] !== n && acc.push([ n, 0 ]),
acc[acc.length - 1][1]++,
acc
), [])
.reduce((acc, n) => (
acc.push(...Array(n[1]).fill(n[1] > 2 ? `${n[0]}` : n[0])),
acc
), []);
const newArr = arr.map((n, i, a) => (
a[i - 1] === n && a[i - 2] === n ||
a[i + 1] === n && a[i + 2] === n ||
a[i - 1] === n && a[i + 1] === n
? `${n}`
: n
));
[] || this.$store.getters.getMyData()
всегда будет иметь своим значением пустой массив. Это первое. Второе - а что, ваш геттер действительно возвращает функцию? Или вы полагаете, будто его надо вызывать? Третье - если по вашей задумке значением myData может быть пустой массив, то почему вы работаете с myData как с объектом? Или, почему вы, зная, что нужен объект с определёнными свойствами, в качестве заглушки используете массив?myData() {
return this.$store.getters.getMyData || { list: [] };
},
!!str.trim()
./[^\s]/.test(str)
.идея была в том, чтобы поставить регулярное выражение в паттерн валидации ангуляр формы
[pattern]="'.*\\S.*'"
. [...new Set(arr.map(n => n.id))]
.Object.values(arr.reduce((acc, n) => (acc[n.id] = n.id, acc), {}))
// или
Array.from(new Map(arr.map(({ id }) => [ id, id ])).values())
// или
arr.map(n => n.id).filter((n, i, a) => i === a.indexOf(n))
// или
arr.reduce((acc, n) => (acc.includes(n.id) || acc.push(n.id), acc), [])
ymaps.panorama.Player
можно указать свойство controls, так же как и у карты.pointer-events: none
при переходе в полноэкранный режим, например. Или просто скрывайте. Не удалось нарыть инфы по этому вопросу
есть ли ограничения у данного способа?
parseInt('666!!!') // 666
+'666!!!' // NaN
<div id="app">
<textarea
v-model="title"
@keydown.enter.prevent
@keyup.enter="addItem"
></textarea>
<ul>
<li v-for="n in $store.state.items">{{ n.title }}</li>
</ul>
</div>
const store = new Vuex.Store({
state: {
items: Array.from('abcd', n => ({ title: n.repeat(3) })),
},
mutations: {
addItem: (state, item) => state.items.push(item),
},
});
new Vue({
el: '#app',
store,
data: () => ({
title: '',
}),
methods: {
addItem() {
const title = this.title.trim();
if (title) {
this.$store.commit('addItem', { title });
this.title = '';
}
},
},
});
const elem = Array
.from(document.querySelectorAll('.wrap .price'))
.find(n => n.textContent === price);
if (elem) {
...
const elems = Array.prototype.filter.call(
document.querySelectorAll('.wrap .price'),
n => n.innerText.includes(price)
);
if (elems.length) {
...