在 Javascript 上使用 rgb 颜色对数组进行排序
Sort array with rgb color on Javascript
我的javascript中有一个带有rgb颜色的数组。假设它看起来像这样:
colors = ['(133,10,22)', '(33,33,33)', '(255,255,255)', '(1,1,1)'];
如何对这个数组进行排序,以便先获得最浅的颜色,最后获得最暗的颜色?所以最后我的数组看起来像这样,例如:
colors = ['(255,255,255)', '(133,10,22)', '(33,33,33)', '(1,1,1)'];
是否有人需要使用任何特定的库,或者它就像 r+g+b 的最大总和最浅的颜色?提前谢谢。
正如@Juhuna指出的,亮度不是通道的总和。
var colors = ['(133,10,22)', '(33,33,33)', '(255,255,255)', '(1,1,1)'];
function sumColor (str) {
var rgb = str.replace(/[()]/g, "").split(",").map(Number);
// Summing the channels does not calculate brightness, so this is incorrect:
// return rgb[0] + rgb[1] + rgb[2];
// To calculate relative luminance under sRGB and RGB colorspaces that use Rec. 709:
return 0.2126*rgb[0] + 0.7152*rgb[1] + 0.0722*rgb[2];
}
colors.sort(function (a, b) {
return sumColor(a) > sumColor(b);
}).reverse();
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- Javascript中的多维数组排序索引问题
- 如何按日期对Javascript对象数组排序
- 数组排序后显示更改
- 当许多元素相等时,Javascript数组排序无法正常工作
- Javascript数组排序速度受字符串长度的影响
- 按唯一键将对象数组排序为数组
- 以 js 为单位的数组排序
- js 数组排序无法正常工作
- 数组排序.论点从何而来
- 不需要的数组排序
- 数组排序不正确/不可预测,使用 indexOf 时
- Javascript将数组排序到树中
- 随后的多维数组排序会产生意外的结果
- 数组排序基于纯javascript搜索文本匹配
- Javascript自定义数组按数组排序
- 使用字符串按属性错误对对象进行数组排序
- 多维数组排序
- JavaScript与PHP在数组排序中的对比
- Javascript-关联数组排序