Как отсеяться строки, от начального ключа, по конечный включительно?

Регулярное выражение взято из комментария. Мне необходимо удалить элементы в объекте, у которых есть styles в неопределенном месте, так как ключ-путь к файлу, но в конце всегда разрешение .js

var a = {
    './js/vendors~first~index~3f7f18c8925be11047bf.js': 1,
    './js/first~3f7f18c8925be11047bf.js': 1,
    './js/index~3f7f18c8925be11047bf.js': 1,
    './js/second~3f7f18c8925be11047bf.js': 1,
    'css/styles~first~3f7f18c8925be11047bf.css': 1,
    'css/styles~index~3f7f18c8925be11047bf.css': 1,
};

for (let key in a ) {
    let ad = key.search(/^.+?styles.+?\.js$/);
    (ad === -1) ? console.log(ad, key) : null;
}

введите сюда описание изображения


Ответы (1 шт):

Автор решения: девочка с глазами ребёнка

Вам это нужно?

var a = {
    './js/vendors~first~index~3f7f18c8925be11047bf.js': 1,
    './js/first~3f7f18c8925be11047bf.js': 1,
    './js/index~3f7f18c8925be11047bf.js': 1,
    './js/second~3f7f18c8925be11047bf.js': 1,
    'css/styles~first~3f7f18c8925be11047bf.css': 1,
    './js/styles~first~3f7f18c8925be11047bf.js': 1,
    'css/styles~index~3f7f18c8925be11047bf.css': 1,
    './js/styles~index~3f7f18c8925be11047bf.js': 1,
};

const result = Object.keys(a).filter(e => !e.match(/^.+?styles.+?\.js$/));

console.log(result);

→ Ссылка