数码世界
第二套高阶模板 · 更大气的阅读体验

数组常见操作:外设选购时的数据处理小技巧

发布时间:2026-01-24 11:50:59 阅读:98 次

你有没有遇到过这样的情况:在对比几十款机械键盘参数时,把型号、轴体、价格、RGB支持、是否热插拔这些信息一条条复制到表格里,结果发现漏了两行,又得从头核对?其实,这类重复性数据整理,用点基础的数组操作就能省下大把时间。

筛选:快速找出符合需求的外设

比如你想找「预算500以内、带USB-C接口、支持QMK固件」的键盘。原始数据可能是一组对象数组:

const keyboards = [
{ name: 'Keychron K6', price: 499, usbC: true, qmk: true },
{ name: 'Ducky One 3', price: 699, usbC: false, qmk: true },
{ name: 'Akko 3068', price: 399, usbC: true, qmk: false }
];

一行 filter 就搞定:

const candidates = keyboards.filter(k => k.price <= 500 && k.usbC && k.qmk);
// 结果:[{ name: 'Keychron K6', ... }]

映射:批量提取关键字段

逛完京东、淘宝、拼多多三家店铺,你手上有三列「商品名+价格」,想合并成统一列表并加个来源标识。用 map 再拼接一下就行:

const jdList = ['罗技G915 TKL', 1299];
const tbList = ['罗技G915 TKL', 1249];
const pdList = ['罗技G915 TKL', 1329];

const allPrices = [jdList, tbList, pdList].map(([name, price], i) => ({
name,
price,
source: ['京东', '淘宝', '拼多多'][i]
}));

查找与去重:避免重复下单

你和室友一起做外设团购,各自发来一份「想买的鼠标型号」清单,最后汇总时发现「Logitech MX Master 3S」被提了4次。用 find 快速确认是否存在,再用 Set 去重:

const myWants = ['MX Master 3S', 'Razer Basilisk V3'];
const hisWants = ['MX Master 3S', 'SteelSeries Rival 3'];

const combined = [...myWants, ...hisWants];
const unique = [...new Set(combined)];
// ['MX Master 3S', 'Razer Basilisk V3', 'SteelSeries Rival 3']

排序:按价格/评分直观比对

抓取回来的12款游戏耳机价格乱序?直接 sort

headsets.sort((a, b) => a.price - b.price); // 从低到高
headsets.sort((a, b) => b.rating - a.rating); // 按评分降序

别小看这几行代码——它们不是程序员专属玩具,而是你高效筛选外设的真实杠杆。下次打开控制台,粘贴一段数据,试试 .filter(),你会发现,比手动划线勾选快得多。