Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据JavaScript或jQuery中的其他数组值对数组进行排序_Javascript_Jquery_Arrays - Fatal编程技术网

根据JavaScript或jQuery中的其他数组值对数组进行排序

根据JavaScript或jQuery中的其他数组值对数组进行排序,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个数组列表,它必须根据其他3个数组值进行排序。我成功地使用一个数组进行排序,但不知道如何继续使用其余的数组。如果我的逻辑错误,请改正 让结果=[ {“名称”:“两项”、“运动”:“足球”、“奖品”:“第一项”}, {“名字”:“两个”,“运动”:“板球”,“奖品”:“第一”}, {“姓名”:“两项”、“运动”:“板球”、“奖品”:“第二项”}, {“名称”:“三”,“体育”:“足球”,“奖品”:“第一”}, {“名称”:“一”、“体育”:“足球”、“奖品”:“第一”}, {“名称”:“三

我有一个数组列表,它必须根据其他3个数组值进行排序。我成功地使用一个数组进行排序,但不知道如何继续使用其余的数组。如果我的逻辑错误,请改正

让结果=[
{“名称”:“两项”、“运动”:“足球”、“奖品”:“第一项”},
{“名字”:“两个”,“运动”:“板球”,“奖品”:“第一”},
{“姓名”:“两项”、“运动”:“板球”、“奖品”:“第二项”},
{“名称”:“三”,“体育”:“足球”,“奖品”:“第一”},
{“名称”:“一”、“体育”:“足球”、“奖品”:“第一”},
{“名称”:“三”,“运动”:“板球”,“奖品”:“第二”},
{“名字”:“一”,“运动”:“板球”,“奖品”:“第二”},
{“名字”:“一”,“运动”:“板球”,“奖品”:“第一”},
]
让norder=[“一”、“二”、“三”];
功能课程开始(a、顺序、键){
const map=order.reduce((r,v,i)=>((r[v]=i,r),{})
返回a.sort((a,b)=>map[a[key]]-map[b[key]])
} 
result=courseSort(result,norder,`name`);

console.log(result)
您可以使用
排序
执行此操作

var result=[{“name”:“two”,“sports”:“football”,“prize”:“first”},{“name”:“two”,“sports”:“cricket”,“prize”:“two”,“sports”:“cricket”,“prize”:“second”},{“name”:“three”,“sports”:“football”,“prize”:“one”,“sports”:“football”,“prize”:“first”},{“name”:“three”,“sports”:“板球”、“奖品”:“第二”},{“名字”:“一”、“运动”:“板球”、“奖品”:“第二”},{“名字”:“一”、“运动”:“板球”、“奖品”:“第一”},];
让nsports=[“板球”、“足球”、“国际象棋”];
让nprize=[“第一”,“第二”];
让norder=[“一”、“二”、“三”];
var sortedarray=结果.排序((a,b)=>{
返回norder.indexOf(a.name)-norder.indexOf(b.name)| | | nsport.indexOf(a.sports)-nsport.indexOf(b.sports)| | | nprize.indexOf(a.prize)-nprize.indexOf(b.prize)
});

console.log(sortedarray)
您可以使用
排序
执行此操作

var result=[{“name”:“two”,“sports”:“football”,“prize”:“first”},{“name”:“two”,“sports”:“cricket”,“prize”:“two”,“sports”:“cricket”,“prize”:“second”},{“name”:“three”,“sports”:“football”,“prize”:“one”,“sports”:“football”,“prize”:“first”},{“name”:“three”,“sports”:“板球”、“奖品”:“第二”},{“名字”:“一”、“运动”:“板球”、“奖品”:“第二”},{“名字”:“一”、“运动”:“板球”、“奖品”:“第一”},];
让nsports=[“板球”、“足球”、“国际象棋”];
让nprize=[“第一”,“第二”];
让norder=[“一”、“二”、“三”];
var sortedarray=结果.排序((a,b)=>{
返回norder.indexOf(a.name)-norder.indexOf(b.name)| | | nsport.indexOf(a.sports)-nsport.indexOf(b.sports)| | | nprize.indexOf(a.prize)-nprize.indexOf(b.prize)
});

console.log(sortedarray)
太好了,感谢您的支持和解释:)太好了,感谢您的支持和解释:)