Сравнение массива по сортировке
Здраствуйте. У меня на старте есть поисковый массив
let whatSearch = [
{
name:"bmw",
},
{
name:"cars"
}
];
Мне нужно сделать поиск по объекту и найти тот массив который соблюдает порядок поискового массива. Но мне не важно если ли в массиве какие нибудь еще элементы...
let array = {
0:[
{
name:"bmw"
},
{
name:"cars"
},
{
name:"..."
},
],
1:[
{
name:"cars"
},
{
name:"bmw"
},
{
name:"..."
},
{
name:"..."
},
],
};
Благодарю за ответ
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Попробуйте:
let whatSearch = [
{
name:"bmw",
},
{
name:"cars"
}
];
let array = {
0:[
{
name:"bmw"
},
{
name:"cars"
},
{
name:"..."
},
],
1:[
{
name:"cars"
},
{
name:"bmw"
},
{
name:"..."
},
{
name:"..."
},
],
};
for (let k in array) {
let v = array[k];
if (v.length < whatSearch.length) {
continue;
}
let found = true;
for (let i = 0; i < whatSearch.length; i++) {
if (v[i].name !== whatSearch[i].name) {
found = false;
break;
}
}
if (found) {
console.log(k, JSON.stringify(v));
}
}