Если file
ваш массив имен файлов,
file.filter((filename) => new RegExp("Chemistry").test(filename))
получит вам все имена файлов, которые имеют Chemistry
в них в массиве:
file.filter((filename) => new RegExp("Chemistry").test(filename))
> ["./pranav/Chemistry/tesgdfgdfg.md", "./pranav/Chemistry/test3.md",
"./pranav/Chemistry/test2.md"]
Подобная тактика может быть использована, чтобы найти те которые имеют Physics
, или Math
в них.
Если вы хотите расширить свой поиск, чтобы включить все строки из chapter
, вы можете перебирает эти ключи в отдельности:
chapter.map(function(subject) {
return file.filter((filename) => new RegExp(subject).test(filename));
})
даст вам список массивов, каждый из которых содержит согласованные элементы file
для каждого объекта по порядку. Обратите внимание:
chapter.map(...)
> [[... all files with "Chemistry"...], [... all files with "Physics" ...]
[... all files with "Maths"...]]
Наконец, если вы хотите создать простой объект из них, так что вы можете отобразить каждый subject
в соответствующих его имен файлов, вы можете сделать:
var result = {}; // create empty object
for (subject of chapter){
result[subject] = file.filter((filename) => new RegExp(subject).test(filename));
}
result
> {"Chemistry" : [... all files with "Chemistry" ...], ... }
или альтернативно посмотреть на the many ways to merge two arrays into an object together.
Я попытался зацикливание как над строкой , а также пытался сравнение между массивом, но проблема, я не знаю, как проверить внутри элемента файла массива –
это до сих пор неясно, на что вы хотите, чтобы результат выглядел? – JordanHendrix
Я хочу поместить элемент файлов в главу, например, Элемент, относящийся к химии (массив файлов), должен попадать под химию (массив разделов) –