Как выполнить поиск в файле CSV?

Как в JavaScript можно осуществить эффективный поиск по csv файлу, выделяя строки, содержащие ключевое слово или его часть, введенное в строку поиска? Если получение каждой строки не приведет к замедлению работы программы, пожалуйста, расскажите об оптимальном способе поиска.
  • 25 октября 2023 г. 16:58
Ответы на вопрос 2
Для выполнения поиска в файле 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 файла (например, в виде объекта или массива) может значительно ускорить поиск.
внести данные в базу данных с использованием csv файла в обменном формате, не предназначенном для работы. Вариант 2: добавить некий индекс к обычному текстовому csv файлу.
Похожие вопросы