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

如何构建嵌套数组?请求基于手机与SIM匹配合并数组的方案

没问题,我来帮你搞定这个数组整理的需求!下面是具体的实现方案,简单易懂还好用:

实现代码
let phones = ["phone1", "phone2", "phone3"];
let sims = [ 'phone1sim1', 'phone1sim2', 'phone2sim1', 'phone2sim2', 'phone1sim3', 'phone3sim1' ];

// 构建目标嵌套数组
let orgPhones = phones.map(phone => {
  // 筛选出当前手机对应的所有SIM卡
  const matchedSims = sims.filter(sim => sim.startsWith(phone));
  // 返回包含手机和对应SIM卡数组的子数组
  return [phone, matchedSims];
});

console.log(orgPhones);
// 输出结果:[ ["phone1", ["phone1sim1", "phone1sim2", "phone1sim3"]], ["phone2", ["phone2sim1", "phone2sim2"]], ["phone3", ["phone3sim1"]] ]
细节说明
  • 核心思路是遍历手机数组+匹配对应SIM卡:用map()遍历每个手机型号,它会帮我们生成对应的子数组结构;
  • 匹配SIM卡用filter()结合startsWith():startsWith(phone)可以精准判断SIM卡名称是否以当前手机型号开头,完美匹配你的命名规则;
  • 关于你示例中phone1只保留两个SIM卡的情况:如果确实不需要phone1sim3,可以在筛选后加个slice(0,2),改成const matchedSims = sims.filter(sim => sim.startsWith(phone)).slice(0,2);即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:59:41