如果键在JavaScript中有值和对象,如何按值对对象排序

如果键在JavaScript中有值和对象,如何按值对对象排序,javascript,arrays,sorting,object,Javascript,Arrays,Sorting,Object,我有一个JavaScript对象数组,其中包含一个包含price属性的对象。如何按价格分类 下面是我的输入数组 const产品=[ { 评级审查:“264”, 价格:{ 奥尔端:“4333Гаа”, 纽旺:“3799Гаа”, }, 名称:“摩托罗拉摩托罗拉G4(XT1622)黑色”, }, { 评级审查:“488”, 价格:'6199Γаа′, 名称:“三星Galaxy J7(2016)J710F/DS Gold+, }, { 评级审查:“198”, 价格:{ 奥尔登:“3495Γаа”, 纽

我有一个JavaScript对象数组,其中包含一个包含price属性的对象。如何按价格分类

下面是我的输入数组

const产品=[
{
评级审查:“264”,
价格:{
奥尔端:“4333Гаа”,
纽旺:“3799Гаа”,
},
名称:“摩托罗拉摩托罗拉G4(XT1622)黑色”,
}, {
评级审查:“488”,
价格:'6199Γаа′,
名称:“三星Galaxy J7(2016)J710F/DS Gold+,
}, {
评级审查:“198”,
价格:{
奥尔登:“3495Γаа”,
纽旺:“2 995Гаа”,
},
名称:“联想K5(A6020a40)银牌”,
}]
下面是我的代码,它不能正常工作

函数makeNumber(字符串){
常量reg=/\d+/g
if(注册测试(字符串)){
让numberStr=string.match(reg)
常量编号=[…numberStr]
return+number.join(“”)
}
返回“”
}
功能比较(a、b){
如果(b.price.hasOwnProperty('newUan')){
b=制造编号(b.price.newUan)
a=制造编号(a.price.newUan)
}否则{
b=制造商编号(b.价格)
a=制造编号(a.价格)
}
返回b-a
}
const sortedByPrice=()=>{
退货。分类(比较)
}

您的比较方法应该需要一些修改

function compare(a, b) {
    if (a.price.hasOwnProperty('newUan')) {
        a = makeNumber(a.price.newUan)
    }
    if (b.price.hasOwnProperty('newUan')) {
        b = makeNumber(b.price.newUan)
    }
    b = makeNumber(b.price)
    a = makeNumber(a.price)
    return b - a 
}