从React表中删除重复的记录

时间:2019-05-24 11:12:05

标签: reactjs xlsx

我正在读取一个Excel文件,将那些数据转换为json并将这些数据显示在react表中。下面的代码是我用来读取这些数据并将其设置为状态的方法。

 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 :(得分:0)

如果sheet_to_json返回一个对象数组,则可以使用lodash删除重复项。

您可以在这里uniqWith

答案 1 :(得分:0)

之后

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

您可以尝试以下操作:

const filteredData = [...new Set(data)];
console.log(filteredData);