【发布时间】:2021-01-03 17:54:08
【问题描述】:
我有这个数组:
sampleArray = [
{name: 'product-2'},
{name: 'product-15'},
{name: 'product-3'},
{name: 'product-10'}
]
我想使用属性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)
但事实并非如此。
我该如何解决这个问题?
【问题讨论】:
-
@zcoop98 不,我已经看到了。它为我提供了与我的代码相同的输出。
-
是的,我意识到你的问题在扣动扳机后就很明显了。很抱歉!
标签: javascript arrays sorting object