Для выполнения поиска в файле CSV с использованием JavaScript вы можете использовать следующий алгоритм:
1. Загрузите CSV файл в формате текста.
2. Разделите текст на строки, используя символ новой строки (\n).
3. Разделите каждую строку на ячейки, используя разделитель CSV (обычно запятую), например, с помощью метода split().
4. Пройдитесь по каждой строке и ячейке и выполните сравнение с ключевым словом, используя методы String.indexOf() или String.includes(), чтобы найти совпадения.
5. Если найдены совпадения, сохраните соответствующую строку (или индекс строки) для дальнейшего использования.
Пример кода для выполнения этих шагов:
```javascript
function searchInCSV(csvText, keyword) {
// 1. Загрузить CSV в формате текста
const lines = csvText.split('\n');
const results = [];
// 2. Пройтись по каждой строке CSV файла
for (let i = 0; i < lines.length; i++) {
// 3. Разделить строку на ячейки
const cells = lines[i].split(',');
// 4. Пройтись по каждой ячейке
for (let j = 0; j < cells.length; j++) {
// 5. Сравнить с ключевым словом
if (cells[j].includes(keyword)) {
results.push(i); // сохранить индекс строки совпадения
break; // прервать цикл, если найдено совпадение в текущей строке
}
}
}
return results;
}
// Пример использования
const csvText = 'header1,header2,header3\nvalue1,value2,value3\nvalue4,value5,value6';
console.log(searchInCSV(csvText, 'value3')); // [1]
console.log(searchInCSV(csvText, 'he')); // [0]
```
Обратите внимание, что этот код выполнит простой линейный поиск, поэтому, если CSV файл очень большой, то может потребоваться оптимизация для более эффективного выполнения. Один из возможных способов оптимизации - использование алгоритма двоичного поиска, если строки в CSV файле отсортированы по какому-либо критерию.
Кроме того, если вы планируете выполнять множество поисковых запросов, то предварительное индексирование CSV файла (например, в виде объекта или массива) может значительно ускорить поиск.