首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从RGB值表中获取9个最常见的RBG值

从RGB值表中获取9个最常见的RBG值
EN

Stack Overflow用户
提问于 2021-11-12 09:24:15
回答 1查看 26关注 0票数 1

快速问答。

我有一张这样的桌子:

代码语言:javascript
运行
复制
[
  [ 86, 81, 89 ],    [ 86, 81, 89 ],    [ 86, 81, 89 ],    [ 83, 78, 84 ],
  [ 86, 81, 89 ],    [ 83, 78, 84 ],    [ 86, 81, 89 ],    [ 86, 81, 89 ],
  [ 83, 78, 84 ],    [ 83, 78, 84 ],    [ 80, 74, 80 ],    [ 76, 69, 76 ],
  [ 76, 69, 76 ],    [ 76, 69, 76 ],    [ 73, 65, 71 ],    [ 67, 63, 70 ],
  [ 67, 63, 70 ],    [ 68, 60, 64 ],    [ 66, 56, 58 ],    [ 57, 51, 59 ],
  [ 66, 56, 58 ],    [ 66, 56, 58 ],    [ 68, 60, 64 ],    [ 68, 60, 64 ],
  [ 68, 60, 64 ],    [ 67, 63, 70 ],    [ 73, 65, 71 ],    [ 76, 69, 76 ],
  [ 76, 69, 76 ],    [ 76, 69, 76 ],    [ 76, 69, 76 ],    [ 73, 65, 71 ],
  [ 73, 65, 71 ],    [ 68, 60, 64 ],    [ 68, 60, 64 ],    [ 68, 60, 64 ],
  [ 66, 56, 58 ],    [ 57, 51, 59 ],    [ 63, 52, 51 ],    [ 63, 52, 51 ],
  [ 56, 47, 48 ],    [ 56, 47, 48 ],    [ 57, 51, 59 ],    [ 63, 52, 51 ],
  [ 57, 51, 59 ],    [ 66, 56, 58 ],    [ 66, 56, 58 ],    [ 68, 60, 64 ],
  [ 66, 56, 58 ],    [ 57, 51, 59 ],    [ 66, 56, 58 ],    [ 68, 60, 64 ],
  [ 67, 63, 70 ],    [ 76, 69, 76 ],    [ 83, 78, 84 ],    [ 86, 81, 89 ],
  [ 86, 81, 89 ],    [ 93, 87, 96 ],    [ 100, 96, 105 ],  [ 109, 104, 108 ],
  [ 115, 108, 112 ], [ 119, 114, 120 ], [ 128, 122, 125 ], [ 134, 130, 137 ],
  [ 134, 130, 137 ], [ 127, 125, 135 ], [ 134, 130, 137 ], [ 134, 130, 137 ],
  [ 134, 130, 137 ], [ 134, 130, 137 ], [ 134, 130, 137 ], [ 134, 130, 137 ],
  [ 134, 130, 137 ], [ 134, 130, 137 ], [ 134, 130, 137 ], [ 135, 133, 143 ],
  [ 143, 140, 145 ], [ 146, 143, 149 ], [ 149, 146, 152 ], [ 149, 146, 152 ],
  [ 149, 146, 152 ], [ 152, 145, 147 ], [ 149, 146, 152 ], [ 149, 143, 144 ],
  [ 146, 143, 149 ], [ 143, 140, 145 ], [ 143, 140, 145 ], [ 141, 137, 141 ],
  [ 149, 146, 152 ], [ 157, 151, 154 ], [ 162, 160, 165 ], [ 168, 166, 171 ],
  [ 174, 169, 172 ], [ 174, 169, 172 ], [ 168, 166, 171 ], [ 169, 164, 165 ],
  [ 166, 160, 161 ], [ 160, 154, 155 ], [ 155, 148, 149 ], [ 149, 143, 144 ],
  ... 50525 more items
]

如何获得该表中最常见的9个RGB值?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-12 09:41:21

这里有一种方法。在这里,您需要使用自己的完整数组。我只使用了您提供的值。我不仅返回9个最常见的RGB值,而且按照从最常见到最不常见的顺序返回所有这些值,因此您必须从sortableRankings-array中获取前9个元素才能准确地获得9个最常见的rgb。

代码语言:javascript
运行
复制
const rgbs = [
    [ 86, 81, 89 ],    [ 86, 81, 89 ],    [ 86, 81, 89 ],    [ 83, 78, 84 ],
    [ 86, 81, 89 ],    [ 83, 78, 84 ],    [ 86, 81, 89 ],    [ 86, 81, 89 ],
    [ 83, 78, 84 ],    [ 83, 78, 84 ],    [ 80, 74, 80 ],    [ 76, 69, 76 ],
    [ 76, 69, 76 ],    [ 76, 69, 76 ],    [ 73, 65, 71 ],    [ 67, 63, 70 ],
    [ 67, 63, 70 ],    [ 68, 60, 64 ],    [ 66, 56, 58 ],    [ 57, 51, 59 ],
    [ 66, 56, 58 ],    [ 66, 56, 58 ],    [ 68, 60, 64 ],    [ 68, 60, 64 ],
    [ 68, 60, 64 ],    [ 67, 63, 70 ],    [ 73, 65, 71 ],    [ 76, 69, 76 ],
    [ 76, 69, 76 ],    [ 76, 69, 76 ],    [ 76, 69, 76 ],    [ 73, 65, 71 ],
    [ 73, 65, 71 ],    [ 68, 60, 64 ],    [ 68, 60, 64 ],    [ 68, 60, 64 ],
    [ 66, 56, 58 ],    [ 57, 51, 59 ],    [ 63, 52, 51 ],    [ 63, 52, 51 ],
    [ 56, 47, 48 ],    [ 56, 47, 48 ],    [ 57, 51, 59 ],    [ 63, 52, 51 ],
    [ 57, 51, 59 ],    [ 66, 56, 58 ],    [ 66, 56, 58 ],    [ 68, 60, 64 ],
    [ 66, 56, 58 ],    [ 57, 51, 59 ],    [ 66, 56, 58 ],    [ 68, 60, 64 ],
    [ 67, 63, 70 ],    [ 76, 69, 76 ],    [ 83, 78, 84 ],    [ 86, 81, 89 ],
    [ 86, 81, 89 ],    [ 93, 87, 96 ],    [ 100, 96, 105 ],  [ 109, 104, 108 ],
    [ 115, 108, 112 ], [ 119, 114, 120 ], [ 128, 122, 125 ], [ 134, 130, 137 ],
    [ 134, 130, 137 ], [ 127, 125, 135 ], [ 134, 130, 137 ], [ 134, 130, 137 ],
    [ 134, 130, 137 ], [ 134, 130, 137 ], [ 134, 130, 137 ], [ 134, 130, 137 ],
    [ 134, 130, 137 ], [ 134, 130, 137 ], [ 134, 130, 137 ], [ 135, 133, 143 ],
    [ 143, 140, 145 ], [ 146, 143, 149 ], [ 149, 146, 152 ], [ 149, 146, 152 ],
    [ 149, 146, 152 ], [ 152, 145, 147 ], [ 149, 146, 152 ], [ 149, 143, 144 ],
    [ 146, 143, 149 ], [ 143, 140, 145 ], [ 143, 140, 145 ], [ 141, 137, 141 ],
    [ 149, 146, 152 ], [ 157, 151, 154 ], [ 162, 160, 165 ], [ 168, 166, 171 ],
    [ 174, 169, 172 ], [ 174, 169, 172 ], [ 168, 166, 171 ], [ 169, 164, 165 ],
    [ 166, 160, 161 ], [ 160, 154, 155 ], [ 155, 148, 149 ], [ 149, 143, 144 ]
  ]

  // Something to save the rankings in
  const rankings = {};

  // Loop through the rgb values
  for(let i = 0; i < rgbs.length; i++)
  {
      const rgb = rgbs[i];
      const rgbString = rgb.join(','); // Make a "key" from the rgb triplet
      
      // Store the ranking, or increment it by one if it already exists
      if(!(rgbString in rankings))
          rankings[rgbString] = 1;
      else
          rankings[rgbString]++;
  }

  // Can't easily sort rankings object and we need to use an object in the previous step to easily find existing rgb rankings by key,
  // So now turn that object into an array which we can sort by the ranking
  const sortableRankings = [];

  for(let ranking in rankings)
  {
      sortableRankings.push([ranking, rankings[ranking]]);
  }


  // Sort by ranking from highest to lowest and log it out
  console.log(sortableRankings.sort((a, b) => b[1] - a[1]));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69940568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档