$reviewsGroupedNumbers
и прогоняем масcив из .csv используя в качестве ключа для объекта номер, пример:[+7 (111) 111-11-11, +7 (111) 111-11-11, +7 (111) 111-11-11].forEach(function( item ) {
if( !$reviewsGroupedNumbers[ item ] ) {
$reviewsGroupedNumbers[ item ] = [];
}
$reviewsGroupedNumbers[ item ].push({
countNumber: '...',
technicType: '...',
rating: '...'
});
});
$reviewsGroupedNumbers[ '+7 (111) 111-11-11' ].length;
const found = Object.keys(obj).filter(n => n.toLowerCase().includes(search));
const SHOW = 2;
const button = document.querySelector('button');
const out = document.querySelector('#out');
button.addEventListener('click', showFound);
showFound();
function showFound() {
out.insertAdjacentHTML('beforeend', found
.splice(0, SHOW)
.map(n => `<div>${n}</div>`)
.join('')
);
button.disabled = !found.length;
}
const $out = $('#suggest');
const $in = $('#in-search');
const technics = {
'Автовышка' : {
"name" : "secret"
},
'Эксковатор Погрузчик' : {
"name" : "secret"
},
}
$in.on('input', function(){
const v = $(this).val().toLowerCase();
if(v.length < 3) {
$out.html('');
return;
}
const matches = [];
for(let title in technics) {
if(!!~title.toLowerCase().indexOf(v))
matches.push( title );
}
$out.html(
matches
.map(t=>t + ': ' +technics[t].name)
.join('<br>')
);
});
!!~
перед indexOf(..) приводит к true/false найдено/не найдено. Всё, кроме -1 даёт true. const technics =[
{
name: "Автовышка"
},
{
name: 'Эксковатор Погрузчик'
}
];
// ПОИСК
const product = technics.find(item => item.name === "Автовышка");
$('.parent') // берем родительские блоки
.on('mouseenter', '[data-id]', event=>{ // вешаем обработчики на дочерние
let id = $(event.target).data('id'); // узнаем id
$(event.target).closest('.parent') // поднимаемся до своего родителя
.siblings('.parent') // переходим к соседу
.find('[data-id='+id+']') // берем в нем нужный дочерний
//... что-то с ним делаем
;
})
$('.parent').eq(0) // берем родительские блоки - только первый
$({ myProp: A }) // начальное значение A
.animate(
{ myProp: B }, // целевое конечное значение B
{ // всякие опции анимации: время, функция на каждый шаг и т.п.
step: function(now, tween) { } // эта будет вызываться на каждом шаге анимации
}
);
const $price = $("#banner-message > p > span");
$("button").on("click", function(){
const oldPrice = parseInt($price.text());
const newPrice = Math.round(500 + Math.random() * 4500);
$({price:oldPrice}).animate({price:newPrice}, {
step: (now, tween) => $price.text(Math.round(tween.elem.price))
});
});
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><circle fill="#064687" cx="256" cy="256" r="248"/><path fill="#fff" d="M389.7 224h-182.6l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0l-132.7 132.6c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3l-75.5-72.4h182.6c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24z"/></svg>