我有这个数组:
sampleArray = [
{name: 'product-2'},
{name: 'product-15'},
{name: 'product-3'},
{name: 'product-10'}
]
我希望使用属性
name
对它进行排序,按字母顺序排列,但字符串中的数字除外。我正在使用与
localeCompare
结合的 sort
。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)
但并非如此。
我该如何解决这个问题?