Сравнение массива по сортировке

Здраствуйте. У меня на старте есть поисковый массив

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));
    }
}

→ Ссылка