繁体   English   中英

如何将数组与第一个是普通数组,第二个是 JavaScript 中的数组配对?

[英]How do I pair arrays with the first one being a normal array and second one an array of arrays in JavaScript?

给定以下数组:

var arr1 = ['A','B','C'];
var arr2 = [['D','E','F']['G','H','I']]

输出应该是:

['ADG','ADH','ADI','AEG','AEH','AEI','AFG','AFH','AFI','BDG','BDH','BDI'.....]

但它也应该是动态的,因此如果将另一个数组添加到 arr2 它也应该选择它。

这是我目前拥有的:

const arrays = (arr1 = [], arr2 = [],arr3 = []) => {

  // var arr3 = arr2.slice(3);
  const res = [];
  for(let i = 0; i < arr1.length; i++){
    for(let j = 0; j < arr2.length; j++){
      for(let s=0;s<arr3.length;s++){
        res.push(arr1[i] + arr2[j] + arr3[s] );
      }
    }
  }

  return res;
};

截屏

您拥有这两个不同的数组变量这一事实并不重要。 可以把所有东西放在一起1并使用reduceRight()

 const arrays = [['A','B','C'], ['D','E','F'], ['G','H','I']]; const combine = (arrays) => arrays.reduceRight((a, v) => v.flatMap(c => a.map(r => c + r))); console.log(combine(arrays));


1对于您的情况,就像const arrays = [arr1, ...arr2];

 var arr1 = ['A','B','C']; var arr2 = [['D','E','F'],['G','H','I'],['J','K','L'],['M','N','O']]; const arr3 = []; arr1.forEach((item,index)=>{ if(arr2.length >= index) { arr2.forEach((el,i)=>{ el.forEach((char,charIndex)=>{ let combination = item combination += char for(let j=1;j<arr2.length;j++){ if(arr2[j]){ combination += arr2[j][charIndex] } } arr3.push(combination) }) }) } }) console.log(arr3)

这就是我所做的

暂无
暂无

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

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