首页 > 解决方案 > 用数字对字母数字进行排序

问题描述

我正在寻找用 lodash 对字母数字进行排序并编写以下函数,我对两种类型都使用通用函数(排序字母和排序字母数字)

 import sortBy from 'lodash/sortBy';

 export const SecondaryQueryExecutor = ({ query, updateState, isJsonData }) => {
  const { loading, data, errorRedirect: error } = useSectionQuery(query, null, isJsonData);
  updateState(draft => {
    draft.loading = { ...draft.loading, [query.resultFieldName]: loading };
  });
  updateState(draft => {
    draft.queryResults = {
      ...draft.queryResults,
      [query.resultFieldName]: sortBy(data, o => o.name) // this is where I applied sorting
    };
  });
  return error || null;
};

但是这种排序看起来不起作用,它的排序如下

在此处输入图像描述

任何人都可以让我知道如何使用上述值实现字母数字排序,并且还需要解决字母排序问题。

提前谢谢了 !!!

标签: javascriptreactjssortinglodashalphanumeric

解决方案


如果你想按数字排序......那么你需要对数字进行排序,而不是文本!

建议:

  1. 将您的值(数值!)存储在数组中。例子:[2,-1,4]
  2. 对数组进行排序。例子:[-1, 2, 4]
  3. 一次读取排序后的数组一个元素并格式化该值。例子:let s = '+/-' + a[i] + '"';

推荐阅读