function wrapChain(f) {
return function(...args) {
this._value = f.call(null, this._value, ...args)
return this
}
}
function chain(arr) {
return {
take: wrapChain(self.take),
skip: wrapChain(self.skip),
map: wrapChain(self.map),
foreach: wrapChain(self.foreach),
filter: wrapChain(self.filter),
_value: arr,
value: function() {
return this._value
}
}
}
$menu.menuAim({
activate: activateSubmenu,
deactivate: deactivateSubmenu,
exitMenu: deactivateSubmenu,
});
return true
. Object.entries(obj).map(([ key, val ]) => (
<BlockItemComp
name={key}
val={val}
/>
))
const roomSizes = [ 30, 4.5, 10 ].sort((a, b) => b - a);
const thingSizes = [ length, height, width ].sort((a, b) => b - a);
if (roomSizes.some((n, i) => n < thingSizes[i])) {
alert('всё плохо');
}
this.setState({ studios: res.data, isLoading: false })
this.setState({ max: this.state.studios.reduce((l, e) => (e.price > l.price ? e : l)) });
this.setState({ min: this.state.studios.reduce((l, e) => (e.price < l.price ? e : l)) });
this.setState({
studios: res.data,
isLoading: false,
max: res.data.reduce((l, e) => (e.price > l ? e.price : l), -Infinity),
min: res.data.reduce((l, e) => (e.price < l ? e.price : l), Infinity),
});
// или, без reduce'ов
const prices = res.data.map(n => n.price);
this.setState({
studios: res.data,
isLoading: false,
max: Math.max(...prices),
min: Math.min(...prices),
});
const sortString = str => str
.split(' ')
.map(n => [ n, +/\d/.exec(n) ])
.sort((a, b) => a[1] - b[1])
.map(n => n[0])
.join(' ');
const sortString = str => Array
.from({ length: 9 }, (n, i) => str.match(RegExp(`\\w*${i + 1}\\w*`)))
.filter(Boolean)
.join(' ');
const sortString = str => str && str
.match(/\S+/g)
.reduce((acc, n) => (acc[n.replace(/\D/g, '')] = n, acc), [])
.reduce((acc, n) => acc + (acc && ' ') + n, '');
SELECT date_trunc('month', date_created), count(*)
FROM table_name
GROUP BY date_trunc('month', date_created)
document.querySelector('.items').addEventListener('click', e => {
const button = e.target.closest('.next');
const item = button && button.closest('.item.active');
if (item) {
item.classList.remove('active');
(item.nextElementSibling || item.parentNode.children[0]).classList.add('active');
}
});
JSON.parse
, никакие DOM-элементы никогда не создаются на основе JSON'ов.div.innerHTML +="qwe"
+=
- вам кажется, будто бы к содержимому div что-то там добавляется. Это не совсем так - содержимое div полностью перезаписывается. Соответственно, ранее добавленные элементы будут удалены и заменены новыми. А к новым элементам никаких обработчиков вы не привязываете - отсюда и отсутствие вывода в консоль.class FilterPipe implements PipeTransform {
transform(items: any[], term): any {
const keys = items.length ? Object.keys(items[0]) : null;
return term && keys
? items.filter(item => keys.some(key => item[key].toString().indexOf(term) !== -1))
: items;
}
}