开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
文档中心
凯发app官方网站的技术支持 & 案例 faq 
支付宝小程序
案例分析
sdk & demo下载
常见问题
常用工具
iot小程序
运维保障
小程序 > 支付宝小程序 > 常见问题 > 支付宝小程序内数组的排序问题(js同理)
贡献者
收藏
我的文档
设置
plain text
复制代码
const arr1 = [ { x: 0, y: 0, key: "0" },
{ x: 0, y: 0, key: "1" }, { x: 0, y: 0, key: "1" },
{ x: 1, y: 1, key: "2" }, { x: 1, y: 2, key: "3" },
{ x: 2, y: 1, key: "4" }];
const arr2 = [ { x: 0, y: 0, key: "0" },
{ x: 0, y: 0, key: "1" },
{ x: 0, y: 0, key: "2" },
{ x: 0, y: 0, key: "3" },
{ x: 0, y: 0, key: "4" },
{ x: 0, y: 0, key: "5" },
{ x: 0, y: 0, key: "6" },
{ x: 0, y: 0, key: "7" },
{ x: 0, y: 0, key: "8" },
{ x: 0, y: 0, key: "9" },
{ x: 1, y: 1, key: "10" },
{ x: 1, y: 2, key: "11" },
{ x: 2, y: 1, key: "12" }];
//解决超过10数据后排序异常问题
1.增加第三个参数的判断。
(compare === 1时 a.x > b.x || (a.x === b.x && a.y > b.y)|| (a.x === b.x&& a.key > b.key && a.y === b.y))(compare === 0时 a.x === b.x && a.y === b.y&& a.key === b.key))
//2.可以按照 compare === 0 的时候 直接返回 a.key - b.keyconst compare = (a, b) => { if (a.x > b.x || (a.x === b.x && a.y > b.y)|| (a.x === b.x && a.key > b.key && a.y === b.y)) { console.log("1a.x:" a.x " ,b.x:" b.x); console.log("1a.y:" a.y " ,b.y:" b.y); return 1;//第一个参数比第二个大 } if (a.x === b.x && a.y === b.y && a.key === b.key) { console.log("0a.x:" a.x " ,b.x:" b.x); console.log("0a.y:" a.y " ,b.y:" b.y); return 0;//两个参数相等 } console.log("-1a.x:" a.x " ,b.x:" b.x);
console.log("-1a.y:" a.y " ,b.y:" b.y);
return -1;//第一个参数比第二个小};
const sort = arr => { return [...arr].sort(compare);};
console.log(sort(arr1));
console.log(sort(arr2));
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
网站地图