Javascript 修改以下排序函数,使其返回数字
以下函数执行以下操作: 1) 如果Javascript 修改以下排序函数,使其返回数字,javascript,sorting,Javascript,Sorting,以下函数执行以下操作: 1) 如果isDefault===true和isDefault===false,则前者优先 2) 如果isDefault===true和isDefault===true,则按updatedAt降序排序 function sortPanoramas (panoramas) { panoramas.sort((a, b) => { if (a.isDefault !== b.isDefault) return a.isDefault < b.isDef
isDefault===true
和isDefault===false
,则前者优先
2) 如果isDefault===true
和isDefault===true
,则按updatedAt
降序排序
function sortPanoramas (panoramas) {
panoramas.sort((a, b) => {
if (a.isDefault !== b.isDefault) return a.isDefault < b.isDefault
if (a.isDefault && b.isDefault) return a.updatedAt < b.updatedAt
if (!a.isDefault && !b.isDefault) return a.name > b.name
})
}
3) 如果isDefault===false
和isDefault===false
,则按name
升序排序
function sortPanoramas (panoramas) {
panoramas.sort((a, b) => {
if (a.isDefault !== b.isDefault) return a.isDefault < b.isDefault
if (a.isDefault && b.isDefault) return a.updatedAt < b.updatedAt
if (!a.isDefault && !b.isDefault) return a.name > b.name
})
}
我想这就是你需要的:
function sortPanoramas(panoramas) {
panoramas.sort((a, b) => {
if (a.isDefault !== b.isDefault) {
return a.isDefault ? -1 : 1;
}
if (a.isDefault && b.isDefault) {
return a.updatedAt > b.updatedAt ? -1 : a.updatedAt < b.updatedAt ? 1 : 0;
}
return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;
});
}
功能sortPanoramas(全景){
全景。排序((a,b)=>{
如果(a.isDefault!==b.isDefault){
返回a.isDefault?-1:1;
}
if(a.isDefault和b.isDefault){
返回a.updatedAt>b.updatedAt?-1:a.updatedAtb.name?1:0;
});
}
我想这就是您需要的:
function sortPanoramas(panoramas) {
panoramas.sort((a, b) => {
if (a.isDefault !== b.isDefault) {
return a.isDefault ? -1 : 1;
}
if (a.isDefault && b.isDefault) {
return a.updatedAt > b.updatedAt ? -1 : a.updatedAt < b.updatedAt ? 1 : 0;
}
return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;
});
}
功能sortPanoramas(全景){
全景。排序((a,b)=>{
如果(a.isDefault!==b.isDefault){
返回a.isDefault?-1:1;
}
if(a.isDefault和b.isDefault){
返回a.updatedAt>b.updatedAt?-1:a.updatedAtb.name?1:0;
});
}
您需要根据布尔条件返回正数或负数
function sortPanoramas (panoramas) {
var mapping = { true:1, false : -1} //example mapping
panoramas.sort((a, b) => {
if (a.isDefault !== b.isDefault) return mapping[a.isDefault < b.isDefault]
})
}
功能sortPanoramas(全景){
var-mapping={true:1,false:-1}//示例映射
全景。排序((a,b)=>{
if(a.isDefault!==b.isDefault)返回映射[a.isDefault
您需要根据布尔条件返回正数或负数
function sortPanoramas (panoramas) {
var mapping = { true:1, false : -1} //example mapping
panoramas.sort((a, b) => {
if (a.isDefault !== b.isDefault) return mapping[a.isDefault < b.isDefault]
})
}
功能sortPanoramas(全景){
var-mapping={true:1,false:-1}//示例映射
全景。排序((a,b)=>{
if(a.isDefault!==b.isDefault)返回映射[a.isDefault
您可以将条件链接起来
功能sortPanoramas(全景){
全景。排序((a,b)=>!a.isDefault-!b.isDefault||
a、 isDefault和&b.updatedAt.localeCompare(a.updatedAt)||
a、 name.localeCompare(b.name));
}
var数据=[{“id”:“eHyt1TYcBN”,“名称”:“a03”,“更新日期”:“2016-08-24T06:21:47.404Z”,“isDefault”:false,“index”:2},{“id”:“VGXXNcBMcH”,“名称”:“a05”,“更新日期”:“2016-08-24T06:27:12.934Z”,“isDefault”:false,“index”:4},“id”:“jUTmyn2TDR”,“名称”:“a04”,“更新日期”:“2016-08-24T06:26:29.591Z”,“isDefault”:false”,index},{“id”:“CbU2Z5BZ9w”,“name”:“a01”,“updatedAt”:“2016-08-24T06:20:47.972Z”,“isDefault”:true,“index”:0},{“id”:“RdT5CvGLRg”,“name”:“a02”,“updatedAt”:“2016-08-24T06:21:22.126Z”,“isDefault”:false,“index”:1},];
sortPanoramas(数据);
console.log(数据);
您可以将条件链接起来
功能sortPanoramas(全景){
全景。排序((a,b)=>!a.isDefault-!b.isDefault||
a、 isDefault和&b.updatedAt.localeCompare(a.updatedAt)||
a、 name.localeCompare(b.name));
}
var数据=[{“id”:“eHyt1TYcBN”,“名称”:“a03”,“更新日期”:“2016-08-24T06:21:47.404Z”,“isDefault”:false,“index”:2},{“id”:“VGXXNcBMcH”,“名称”:“a05”,“更新日期”:“2016-08-24T06:27:12.934Z”,“isDefault”:false,“index”:4},“id”:“jUTmyn2TDR”,“名称”:“a04”,“更新日期”:“2016-08-24T06:26:29.591Z”,“isDefault”:false”,index},{“id”:“CbU2Z5BZ9w”,“name”:“a01”,“updatedAt”:“2016-08-24T06:20:47.972Z”,“isDefault”:true,“index”:0},{“id”:“RdT5CvGLRg”,“name”:“a02”,“updatedAt”:“2016-08-24T06:21:22.126Z”,“isDefault”:false,“index”:1},];
sortPanoramas(数据);
console.log(数据);
在您的逻辑中,您可以声明
1) 如果isDefault===true和isDefault===false,则前者将失效
首先
2) 如果isDefault===真且isDefault==真,则按updatedAt排序
以下降的方式
3) 如果isDefault===false和isDefault===false,请在中按名称排序
上升趋势
但是,如果这些都不匹配,即当a.isDefault==false和b.isDefault==true时,您希望发生什么?不应该进行排序
如果是这样,那么这可能是一个解决方案
function sortPanoramas(panoramas) {
panoramas.sort((a, b) => {
if (a.isDefault) {
return b.isDefault ? a.updatedAt.localeCompare(b.updateAt) : -1;
}
return b.isDefault ? 0 : a.name.localeCompare(b.name);
})
}
也许你可以澄清一下逻辑?在你的逻辑中,你说 1) 如果isDefault===true和isDefault===false,则前者将失效 首先 2) 如果isDefault===真且isDefault==真,则按updatedAt排序 以下降的方式 3) 如果isDefault===false和isDefault===false,请在中按名称排序 上升趋势 但是,如果这些都不匹配,即当a.isDefault==false和b.isDefault==true时,您希望发生什么?不应该进行排序 如果是这样,那么这可能是一个解决方案
function sortPanoramas(panoramas) {
panoramas.sort((a, b) => {
if (a.isDefault) {
return b.isDefault ? a.updatedAt.localeCompare(b.updateAt) : -1;
}
return b.isDefault ? 0 : a.name.localeCompare(b.name);
})
}
也许你可以澄清一下逻辑?看看@Nina Scholz好的,我添加了一些数据。看看@Nina Scholz好的,我添加了一些数据。一点解释,即使只是代码中的注释,也会大大改进答案。一点解释,即使只是代码中的注释,也会大大改进答案。