如何解决数组sort无法与数组中的数字对象一起使用
sort()不适用于我拥有的数组。
我尝试了类似的方式:
const varNum1 = 35;
const varNum2 = 25;
const varNum3 = 12;
const varNum4 = 19;
const leaders = [{name: "Matt",score: varNum1},{name:"Mike",score: varNum2},{name: "Matt",score: varNum3},score: varNum4}];
function compare(a,b) {
let comparison = 0;
if (a.score > b.score) {
comparison = 1;
} else if (a.score < b.score) {
comparison = -1;
}
return comparison;
}
console.log(leaders.sort(compare));
其他示例为:
console.log(leaders.sort((a,b) => a.score - b.score));
解决方法
这是一个可行的示例:
let varNum1 = 35;
let varNum2 = 25;
let varNum3 = 12;
let varNum4 = 19;
const leaders = [{name: "Matt",score: varNum1},{name:"Mike",score: varNum2},{name: "Matt",score: varNum3},score: varNum4}];
leaders.sort((a,b) => (a.score > b.score) ? 1 : ((b.score > a.score) ? -1 : 0));
console.log(leaders);
https://jsfiddle.net/1rkj7ham/1/
,您的领导对象没有band属性,您的功能是比较band。
let varNum1 = 35;
let varNum2 = 25;
let varNum3 = 12;
let varNum4 = 19;
const leaders = [{name: "Matt",score: varNum4}];
console.log(leaders.sort((a,b) => a.score - b.score));
您可以只使用a.score - b.score
,它必须是正数,0或负数。不完全是1或-1。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。