有时候我们需要把相同的参数放一起,比如下面数组对象中,我们需要把spec相同的参数放一起怎么做呢?

let arr=[
{
name: "蓝色",
spec: "颜色",
},
{
name: "少年",
spec: "适用人群",
},
{
name: "黑色",
spec: "颜色",
},
{
name: "年轻人",
spec: "适用人群",
},
{
name: "111",
spec: "规格a",
},
{
name: "222",
spec: "规格a",
},
{
name: "aaa",
spec: "规格aa",
},
{
name: "bbb",
spec: "规格aa",
},
]
arr.sort((a,b)=>{
if(a['spec']!=b['spec']){
return a['spec'].localeCompare(b['spec']);
}
})
console.log(arr)

js 数组对象 排序相同的属性_数组

localeCompare是什么东西?

  定义:用本地特定的顺序来比较两个字符串。

  语法:stringObject.localeCompare(target)

  参数:target——要以本地特定的顺序与 stringObject 进行比较的字符串。

返回值

  1、如果 stringObject 小于 target, localeCompare() 返回小于 0 的数。

  2、如果 stringObject 大于 target,localeCompare() 返回大于 0 的数。

  3、如果两个字符串相等,localeCompare() 返回 0。