gpt4 book ai didi

javascript - 使用内联函数对对象数组进行数字排序

转载 作者:行者123 更新时间:2023-11-30 09:28:58 25 4
gpt4 key购买 nike

我有一个 js 对象数组,我需要根据区域 h*w 对其进行排序。也就是说,每个对象都有 {h,w}。我没有得到排序的数组。

我有一个如图所示的数组,

var blocks = [];

blocks.push({
w: 320,
h: 135
});
blocks.push({
w: 320,
h: 270
});
blocks.push({
w: 320,
h: 135
});
blocks.push({
w: 320,
h: 135
});
blocks.push({
w: 320,
h: 135
});

blocks.sort(function(a, b) {
return (b.w * b.h < a.w * a.h);
});
console.log(JSON.stringify(blocks));

最佳答案

使用 - 运算符:

blocks.sort(function(a, b) {
return b.w * b.h - a.w * a.h;
});

如果 sort 的回调返回:

  • 一个负数,然后sort会将a放在b之前
  • 0,则 ab 相等,sort 将决定谁在谁之前。<
  • 一个正数,然后 sort 会将 b 放在 a 之前。

注意:上面的代码是对数组进行降序排序,如果要倒序,返回a.w * a.h - b.w * b.h即可。

关于javascript - 使用内联函数对对象数组进行数字排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47576370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com