首页 > 解决方案 > 如何形成嵌套数组的数组?

问题描述

根据电话是否与模拟人生匹配,使用 2 个阵列形成新的子阵列阵列时遇到一些麻烦。我要组织:

let phones = ["phone1", "phone2", "phone3"]

let sims = [ 'phone1sim1', 'phone1sim2', 'phone2sim1', 'phone2sim2', 'phone1sim3', 'phone3sim1' ]

进入一个子数组的数组,如下所示:

let orgPhones = [

  ["phone1", ["phone1sim1", "phone1sim2"]],
  ["phone2", ["phone2sim1", "phone2sim2"]],
  ["phone3", ["phone3sim1"]]

]

任何建议表示赞赏!

标签: javascriptarrays

解决方案


要准确返回您需要的内容,您可以使用这些Array.protoype方法;就像这样mapfilter

const organised = phones.map((phone)=> [phone, sims.filter(sim => sim.indexOf(phone)!== -1)]);

但是,我强烈建议您使用 JavaScript 对象而不是数组,如下所示:

{
    phone1: ['phone1sim1', 'phone1sim2', 'phone1sim3']
    phone2: ['phone2sim1', 'phone2sim2']
    // etc...
}

根据上面概述的预期结果,我将使用以下内容:

const phones = ['phone1', 'phone2', 'phone3'];
const sims = ['phone1sim1', 'phone1sim2', 'phone2sim1', 'phone2sim2', 'phone1sim3', 'phone3sim1'];

const organised = {};

phones.map((phone)=> organised[phone] = sims.filter(sim => sim.indexOf(phone)!== -1));

推荐阅读