Есть массив с обьектами "товаров" например.
someArr = [{name:***, prodid:***, prodinfo:***},{name:***, prodid:***, prodinfo:***}]
И больше в нем инфы разной. Есть еще один массив
someOtherArr = [{prodid:***},{prodid:***},{prodid:***}]
в нем только объекты с айди. как сравнить эти массивы и выбрать с someArr только те обьекты где есть айди с someOtherArr
А зачем во втором массиве объекты, если они содержат только одно поле? Почему бы не превратить someOtherArr
в [prodid1, prodid2, prodid3, ...]
, тогда фильтрация в одну строку реализуется
Синтаксис es6
const someArr = [{name:***, prodid:***, prodinfo:***}, ...]
const someOtherArr = [prodid, prodid, prodid]
const filtredArr = someArr.filter(el => someOtherArr.includes(el.prodid))
includes
как раз проверяет есть ли элемент в массиве, если да возвращает true
Если все таки структуру someOtherArr
поменять изначально нельзя, то поменяем ее руками
const someArr = [{name:***, prodid:***, prodinfo:***}, ...]
const someOtherArr = [prodid, prodid, prodid]
// содержит значения prodid
const mapedOtherArr = someOtherArr.map(el => el.prodid)
const filtredArr = someArr.filter(el => mapedOtherArr.includes(el.prodid))
Вариант много. Вот 1 из них.
var someArr = [
{name:"name1", prodid:1, prodinfo:''},
{name:"name2", prodid:2, prodinfo:''},
{name:"name3", prodid:3, prodinfo:''},
{name:"name4", prodid:4, prodinfo:''},
];
var someOtherArr = [
{prodid:1},
{prodid:3},
{prodid:2}
]
var result = [];
for(var i = 0; i < someOtherArr.length; i++) {
result.push(someArr.find(function (item) {
return item.prodid == someOtherArr[i].prodid
}))
}
console.log(result);
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Подскажите пожалуйстаМне нужно открыть модальное окно когда одно уже открыто
Нижеприведённый код после blur из пустого поля ввода бесконечно выдаёт alert
Как прокрутить веб страницу вниз при помощи чистого java scriptСтраница строится динамически по мере прокрутки вниз