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;
}
}
.slice(0, 3)
.aux.select();
сделайтеaux.focus();
aux.setSelectionRange(0, 3);
нужно до плюса скопировать, там не всегда 3 символа может быть
'+'
с помощью indexOf
..match(/[^+]*/)
), или удалите его и то, что после (.replace(/\+.*/, '')
). $scope.user = $rootScope.myData
скопированы данные
$scope.user = Object.assign({}, $rootScope.myData)
$scope.user = { ...$rootScope.myData }