You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对网页流量二维数组按pageviews与number of users排名并追加排名值

解决方案

核心思路

要实现需求,需要先分别按pageviews和number of users的数值降序排序,生成每个页面对应的排名,再将排名追加到原数组的对应子项末尾。注意原数据中这两个指标是字符串类型,排序前要先转为数值。


JavaScript 实现代码

// 原始数据
const originalData = [['page 1 name','3678','400'],['page 2 name','4000','123'],['page 3 name','3802','750']];

// 生成pageviews的排名映射(降序)
const pageViewsSorted = [...originalData].sort((a, b) => parseInt(b[1]) - parseInt(a[1]));
const pageRankMap = new Map();
pageViewsSorted.forEach((item, index) => {
  pageRankMap.set(item[0], String(index + 1));
});

// 生成number of users的排名映射(降序)
const usersSorted = [...originalData].sort((a, b) => parseInt(b[2]) - parseInt(a[2]));
const userRankMap = new Map();
usersSorted.forEach((item, index) => {
  userRankMap.set(item[0], String(index + 1));
});

// 生成最终结果
const result = originalData.map(item => [...item, pageRankMap.get(item[0]), userRankMap.get(item[0])]);

console.log(result);

Python 实现代码

# 原始数据
original_data = [['page 1 name','3678','400'],['page 2 name','4000','123'],['page 3 name','3802','750']]

# 生成pageviews的排名字典(降序)
page_views_sorted = sorted(original_data, key=lambda x: int(x[1]), reverse=True)
page_rank_map = {item[0]: str(i+1) for i, item in enumerate(page_views_sorted)}

# 生成number of users的排名字典(降序)
users_sorted = sorted(original_data, key=lambda x: int(x[2]), reverse=True)
user_rank_map = {item[0]: str(i+1) for i, item in enumerate(users_sorted)}

# 生成最终结果
result = [item + [page_rank_map[item[0]], user_rank_map[item[0]]] for item in original_data]

print(result)

代码说明

  1. 复制与排序:先复制原数组避免修改原始数据,再分别按pageviews和number of users的数值降序排序;
  2. 映射排名:用Map/字典存储每个页面名称对应的排名(排名从1开始,转为字符串以匹配示例格式);
  3. 追加排名:遍历原数组,从映射中取出对应排名,追加到子数组末尾。

内容的提问来源于stack exchange,提问作者Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 15:57:20