javascript - 基于另一个列表JS按字母顺序排序对象列表
问题描述
我想根据另一个字符列表和属性“名称”按字母顺序对对象列表进行排序
这是排序列表和我希望遵循的顺序,以便对我的列表进行排序:
const SortingArray = [['a','á','à','â','ä','å','ã'],['b'],['c','ç'],['d'],
['e','é','è','ê','ë'],['f'],['g'],['h'],['i','í','ì','î','ï'],
['j'],['k'],['l'],['m'],['n','ñ'],['o','ó','ò','ô','ö','õ'],['p'],
['q'],['r'],['s','š'],['t'],['u','ú','ù','û','ü'],
['v'],['w'],['x'],['y','ý','ÿ'],['z','ž']];
这是我要排序的列表:
var listToSort = [{name: 'Étape',code: 'c12'},{name: 'Abc',code: 'c14'},{name: 'Ûrter',code: 'c15'}
]
解决方案
您可以通过实现一个排序函数来计算 SortingArray 中单词的第一个字符的索引,如下所示:
listToSort.sort((a, b) => {
const aIndex = SortingArray.findIndex(charArray =>
charArray.includes(a.name[0].toLowerCase())
);
const bIndex = SortingArray.findIndex(charArray =>
charArray.includes(b.name[0].toLowerCase())
);
return aIndex - bIndex;
});
推荐阅读
- google-apps-script - 通过勾选复选框自动移动 Google 表单响应
- c++ - 当缓存线大小通常为 64 字节时,为什么 sizeof std::mutex == 40
- python - python re.split 与 maxsplit 参数
- python - 使用 OpenCV 获得完整的形状图案
- github - “Package.json - 没有这样的文件或目录”错误检查 GitHub 上的詹金斯管道
- reactjs - 在 React 2020 中收到非布尔属性“已完成”的“假”
- android - 如何修复这些错误?我只是想将我的项目连接到 Firebase,但我遇到了所有这些错误
- python - Python 是否也有一些内置数据集(如 R)来执行测试?
- javascript - 如何动态更改附加的子文本 - JQuery
- list - F#:创建一个包含所有列表头部的列表,在列表中