用数字对字母数字进行排序

问题描述

我正在寻找用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;
};

但是这种排序似乎不起作用,并且如下所示排序

enter image description here

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

非常感谢!

解决方法

如果要按数字排序...则需要对数字而不是文本进行排序!

建议:

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