Sobes.tech
Back to questions
Middle
3

// === 1 === // TODO: implement id function // console.log(id()); // 0; // console.log(id()); // 1; // console.log(id()); // 2; // console.log(id()); // 3; export default function App() { // TODO: implement Table.tsx return <></>; }

Companies where asked
RWB

Answer from AI

sobes.tech AI

Для реализации функции id, которая при каждом вызове возвращает следующий целочисленный идентификатор, можно использовать замыкание, чтобы сохранить текущее значение счетчика:

function id() {
  let counter = 0;
  return function() {
    return counter++;
  };
}

const getId = id();
console.log(getId()); // 0
console.log(getId()); // 1
console.log(getId()); // 2
console.log(getId()); // 3

Если нужно, чтобы функция id сама по себе была вызываемой и возвращала следующий id, можно сделать так:

const id = (() => {
  let counter = 0;
  return () => counter++;
})();

console.log(id()); // 0
console.log(id()); // 1
console.log(id()); // 2
console.log(id()); // 3

Что касается Table.tsx, это компонент React, который обычно отображает данные в табличном виде. Пример простого компонента таблицы:

import React from 'react';

interface TableProps {
  data: Array<{ id: number; name: string }>;
}

const Table: React.FC<TableProps> = ({ data }) => {
  return (
    <table>
      <thead>
        <tr><th>ID</th><th>Name</th></tr>
      </thead>
      <tbody>
        {data.map(item => (
          <tr key={item.id}>
            <td>{item.id}</td>
            <td>{item.name}</td>
          </tr>
        ))}
      </tbody>
    </table>
  );
};

export default Table;

В компоненте App можно использовать этот Table и передать данные через пропсы.