Как получить данные, находящиеся в столбце таблицы с заголовком "столица"?

Как исправить код, чтобы он работал и правильно собирал данные из таблицы, используя задержку в 10 секунд и промис?
  • 22 октября 2023 г. 13:58
Ответы на вопрос 1
Чтобы получить данные, находящиеся в столбце таблицы с заголовком "столица", можно использовать следующий код:

```javascript
// Получение данных из столбца с заголовком "столица"
const table = document.querySelector('table'); // Получение таблицы
const headers = table.querySelectorAll('th'); // Получение заголовков столбцов
let columnIndex; // Индекс столбца с заголовком "столица"

// Поиск индекса столбца с заголовком "столица"
headers.forEach((header, index) => {
  if (header.textContent.trim() === 'столица') {
    columnIndex = index;
  }
});

// Получение данных из столбца "столица"
const data = [];
const rows = table.querySelectorAll('tr'); // Получение строк таблицы

rows.forEach((row) => {
  const cells = row.querySelectorAll('td'); // Получение ячеек строки
  const cellData = cells[columnIndex].textContent.trim(); // Получение данных из столбца "столица"
  data.push(cellData);
});

console.log(data); // Вывод данных из столбца "столица"
```

Чтобы исправить код и добавить задержку в 10 секунд с использованием промиса, можно сделать следующие изменения:

```javascript
// Функция для получения данных из таблицы с задержкой
function getDataWithDelay(delay) {
  return new Promise((resolve) => {
    setTimeout(() => {
      // Весь код для получения данных из таблицы здесь
      const table = document.querySelector('table');
      // ...
      console.log(data);
      
      resolve();
    }, delay);
  });
}

// Вызов функции для получения данных с задержкой в 10 секунд
getDataWithDelay(10000)
  .then(() => {
    console.log('Данные получены!');
  });
```

В данном случае, функция `getDataWithDelay` принимает аргумент `delay` - задержку в миллисекундах. Она возвращает промис, который будет выполнен после заданной задержки. Внутри промиса происходит получение данных из таблицы, как и в предыдущем коде. После получения данных, вызывается функция `resolve`, чтобы указать, что промис выполнен.

Затем, вызывается функция `getDataWithDelay(10000)`, которая возвращает промис. Метод `.then()` применяется к этому промису и в нем указывается, что делать после того, как данные будут получены. В данном случае, выводится сообщение 'Данные получены!'.
Похожие вопросы