【问题标题】:cannot sorting array correctly in react无法在反应中正确排序数组
【发布时间】:2021-07-28 14:57:03
【问题描述】:

我创建了这个函数来对 array 中的数据进行排序,当我按 ID 对其进行排序时,它工作得很好,但是当我尝试按名称对其进行排序时,什么也没有发生。

有人可以帮忙解决这个问题吗?谢谢之前

const sortData = (params) => {
    if (params === "id-asc") {
      array.sort((a, b) => {
        return a.id - b.id;
      });
    }
    if (params === "id-des") {
      array.sort((a, b) => {
        return b.id - a.id;
      });
    }
    if (params === "name-asc") {
      array.sort((a, b) => {
        return a.name - b.name;
      });
    }
    if (params === "name-des") {
      array.sort((a, b) => {
        return b.name - a.name;
      });
    }
    setArrayData(array);
  };

【问题讨论】:

  • 你确定name 是一个数值吗?或者你只会得到NaN

标签: arrays reactjs sorting


【解决方案1】:

假设names 是字符串,你不能只通过减法来比较它们。

改为return (a.name < b.name ? -1 : 1); 或者,最好是use localeCompare, so return a.name.localeCompare(b.name);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 2016-01-11
    • 2019-11-04
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多