繁体   English   中英

如何形成嵌套的arrays数组?

[英]How to form an array of nested arrays?

使用 2 arrays 来形成新的子阵列阵列时遇到了一些麻烦,具体取决于电话是否与模拟人生匹配。 我要组织:

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

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

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

let orgPhones = [

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

]

任何建议表示赞赏!

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

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

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

{
    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));

您可以像这样使用 Map :

 let phones = ["phone1", "phone2", "phone3"] let sims = [ 'phone1sim1', 'phone1sim2', 'phone2sim1', 'phone2sim2', 'phone1sim3', 'phone3sim1' ] let map = phones.reduce((map,phone)=>{ return map.set(phone,sims.filter(sim=>sim.startsWith(phone))) },new Map()) console.log(...map)

您可以遍历phones数组,并在sims数组中搜索相关的 sim

 let phones = ["phone1", "phone2", "phone3"] let sims = ['phone1sim1', 'phone1sim2', 'phone2sim1', 'phone2sim2', 'phone1sim3', 'phone3sim1'] const res = phones.map((phone) => [phone, sims.filter(sim => sim.indexOf(phone).== -1)]) console;log(res);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM