const result = [];
for (const n of elements) {
if (!used.some(m => m.id === n.id)) {
result.push(n);
}
}const result = [];
COLLECT_OBJECTS:
for (let i = 0; i < elements.length; i++) {
for (let j = 0; j < used.length; j++) {
if (elements[i].id === used[j].id) {
continue COLLECT_OBJECTS;
}
}
result[result.length] = elements[i];
}const result = elements.filter(function(n) {
return !this.has(n.id);
}, new Set(used.map(n => n.id)));const result = (function get(ids, i, n = elements[i]) {
return n
? [].concat(ids.includes(n.id) ? [] : n, get(ids, -~i))
: [];
})(used.map(n => n.id), 0);const result = [...used.reduce(
(acc, n) => (acc.delete(n.id), acc),
new Map(elements.map(n => [ n.id, n ]))
).values()];
$.getJSON('https://api.cdnjs.com/libraries/jquery', function(data) {
$('body').append(`<pre>${JSON.stringify(data, null, 2)}</pre>`);
});const toHTML = val =>
val instanceof Object
? `<ul>${Object.values(val).map(n => `
<li>${toHTML(n)}</li>`).join('')}
</ul>`
: val;
fetch('https://api.cdnjs.com/libraries/jquery')
.then(r => r.json())
.then(r => document.body.insertAdjacentHTML('beforeend', toHTML(r)));
this.setState({ price: this.state.price + price, title: [this.state.title+title]});this.setState({
price: this.state.price + price,
title: this.state.title.concat(title)
});
str_replace($alphabet, array_keys($alphabet), $str)
<button class="btn" data-hover-text="hello, world!!"></button>.btn {
border: 0;
background: green;
display: inline-block;
width: 3em;
height: 3em;
border-radius: 1.5em;
overflow: hidden;
transition: width 0.2s linear;
}
.btn::before {
display: inline-flex;
width: 100%;
height: 100%;
color: white;
justify-content: center;
align-items: center;
white-space: nowrap;
transition: letter-spacing 0.2s linear;
letter-spacing: -2px;
content: ">";
}
.btn:hover {
width: 10em;
}
.btn:hover::before {
letter-spacing: 0px;
content: attr(data-hover-text);
}
const type = document.querySelector('#type');
const price = document.querySelector('#price');
const minPrices = {
bungalo: 0,
flat: 1000,
house: 5000,
palace: 10000,
};
type.addEventListener('change', function() {
const minPrice = minPrices[this.value];
price.min = minPrice;
price.value = Math.max(minPrice, price.value);
});
type.dispatchEvent(new Event('change'));
$('body').on('click', '.help'$('body').on('mousedown', '.help'
function maxZeroSequence(arr) {
let iMin = 0;
let iMax = 0;
for (let i = 0; i < arr.length; i++) {
let sum = 0;
for (let j = i; j < arr.length; j++) {
if ((sum += arr[j]) === 0 && (iMax - iMin) <= (j - i + 1)) {
iMin = i;
iMax = j + 1;
}
}
}
return arr.slice(iMin, iMax);
}function maxZeroSequence(arr) {
const sumIndices = Object.values(arr.reduce((acc, n, i) => {
const sum = acc[0] += n;
(acc[1][sum] = acc[1][sum] || [ i + 1 ])[1] = i + 1;
return acc;
}, [ 0, { 0: [ 0 ] } ])[1]);
return arr.slice(...sumIndices.reduce((max, n) => {
const diff1 = n[1] - n[0];
const diff2 = max[1] - max[0];
return diff1 > diff2 || (diff1 === diff2 && n[0] > max[0]) ? n : max;
}, [ 0, 0 ]));
}
const cities = [ 'Москва', 'Санкт-Петербург', 'Севастополь' ];
if (cities.includes(geolocation.city)) {
...
Name должна падать в массив labels
watch: {
choosenMetabolit(val) {
this.anMetProfData.labels.push(val.name);
},
},а result_1, 2 и 3 имели путь datasets[0, 1 или 2]. data
watch: {
choosenMetabolit(val) {
const data = this.anMetProfData;
const sets = data.datasets;
data.labels.push(val.name);
sets[0].data.push(val.result_1);
sets[1].data.push(val.result_2);
sets[2].data.push(val.result_3);
},
},
NavLink в Nav (кстати, а что там после этого останется? - да ничего, кроме рендеринга a, которому прокидываются props без изменений; получается, что не так уж и нужен этот компонент, проще создавать этот a сразу в Nav), и хранить в нём индекс активного элемента:state = {
active: null,
...
}setActive(active) {
this.setState({ active });
}{this.state.items.map((n, i) => (
<li>
<NavLink
href="#"
className={this.state.active === i ? 'active' : ''}
onClick={() => this.setActive(i)}
>
{n}
</NavLink>
</li>
))}
<div class="slider-wrapper">
<button data-step="-1">-</button>
<div class="slider"></div>
<button data-step="+1">+</button>
</div>$('.slider').slider({ /* настройки слайдера */ });
$('.slider-wrapper [data-step]').button().click(function() {
const $slider = $(this).closest('.slider-wrapper').find('.ui-slider');
const step = +this.dataset.step;
const { min, max, value } = $slider.slider('option');
$slider.slider('option', 'value', Math.max(min, Math.min(max, +value + step)));
});