Я хотел бы рассмотреть базу данных для такого рода данных. Однако, если вы решите не делать этого, мы все равно сможем сделать это довольно легко. Вы захотите создать «объект отображения», в котором хранятся данные, а затем просмотреть их, а не создавать гигантские серии операторов if. Вот невероятно простой пример с небольшим количеством данных, этот подход использует массив и a для каждого цикла для поиска данных.
var mapper = [
{
fileName: '000001.pdf',
description: 'Title Page'
},
{
fileName: '00001.pdf',
description: 'Project Title Page'
},
{
fileName: '00350.pdf',
description: 'Project Financial Information'
}
];
function processFile(file) {
var sDesc = '';
// This really is not the most efficient way, but it is the simplest
// to understand. Really you probably want to use the .find function
// here instead. Or any other optimisation.
mapper.forEach(function(mapping) {
if (file.name === mapping.fileName) {
sDesc = description;
}
});
return sDesc;
}
В этом случае мы храним все данные (сопоставление имени файла с описанием) в массиве. Затем, когда мы обрабатываем файл, мы перебираем этот массив, чтобы найти необходимую нам информацию, и затем можем действовать оттуда. Затем вы можете использовать эту функцию processFile
в другом месте. Например, вы можете обработать несколько файлов, поэтому, используя описанное выше, мы можем сделать это.
function processAllFiles(fileCollection) {
// Again here, we would probably use a map function but
// for simplicity lets go with a simple to understand loop.
fileCollection.forEach(function(file) {
var fileDescription = processFile(file);
// Do something with this fileDescription...
});
}
Есть много других способов сделать это, которые делают это еще проще. Во-первых, это использовать базу данных, где вы можете указать базе данных «найди мне описание для имени файла X», и она сразу же выведет ее для вас. Это идеально, если ваши данные будут расти со временем или будут большими с самого начала.