Удалить дубликаты записей из React Table - PullRequest
0 голосов
/ 24 мая 2019

Я читаю файл Excel, преобразовываю эти данные в json и показываю эти данные в таблице реагирования.Приведенный ниже код является методом, который я использую для чтения и установки этих данных в состояние.

 handleFiles = async event => {
    debugger;
    var fileType = "xlsx";

    if (event.target.files && event.target.files[0]) {
      var extension = event.target.files[0].name
          .split(".")
          .pop()
          .toLowerCase(), //file extension from input file
        isSuccess = fileType.indexOf(extension) > -1; //is extension in acceptable types

      if (isSuccess) {
        //yes
        var reader = new FileReader();

        reader.onload = event => {
          // alert("Valid File extension");

          const bstr = event.target.result;

          const wb = XLSX.read(bstr, { type: "binary" });

          /* Get first worksheet */
          const wsname = wb.SheetNames[0];
          const ws = wb.Sheets[wsname];

          /* Convert array of arrays */

          const data = XLSX.utils.sheet_to_json(ws);

          console.log("Array is , ", data);

          this.setState({
            data: XLSX.utils.sheet_to_json(ws),
            isShown: false,
            valid: true
          });

          /* Update state */
        };
        reader.readAsBinaryString(event.target.files[0]);
      } else {
        //no
        // alert("Invalid File Type ");
        await this.setState({
          valid: false,
          msg: "Invalid File Type"
        });
      }
    }
  };

Может ли кто-нибудь помочь мне удалить дубликаты записей?

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

После

const data = XLSX.utils.sheet_to_json(ws);

вы можете попробовать это:

const filteredData = [...new Set(data)];
console.log(filteredData);
0 голосов
/ 24 мая 2019

если sheet_to_json возвращает массив объектов, вы можете использовать lodash для удаления дубликатов.

Здесь вы можете увидеть uniqWith

...