我有这个数组:
sampleArray = [
{name: 'product-2'},
{name: 'product-15'},
{name: 'product-3'},
{name: 'product-10'}
]
我想使用 property 对其进行排序name,按字母顺序排列,但字符串中的数字除外。
我正在sort结合使用localeCompare:
sampleArray.sort((a, b) => a.name.localeCompare(b.name))
但是,就像name一个包含数字的字符串一样,我得到了这个:
sampleArray = [
{name: 'product-10'},
{name: 'product-15'},
{name: 'product-2'},
{name: 'product-3'}
]
考虑到数字,我需要以正确的顺序获取它。这会是什么:
sampleArray = [
{name: 'product-2'},
{name: 'product-3'},
{name: 'product-10'},
{name: 'product-15'}
]
我知道如果我只处理数字我可以这样做:
sampleArray.sort((a,b) => a - b)
但事实并非如此。
我该如何解决这个问题?
慕仙森
相关分类