在 JavaScript 中展平数组元素

希瓦姆·萨希尔

我有两个数组,如下所示:

array1: [["abc","def","ghi"],["jkl","mno","pqr"]],
array2: [[1,2,3,4,5],[6,7,8,9,10]]

我想操作一个扁平化操作,它给我这样的结果Flatten(array1,array2)::

result: [["abc","def","ghi",1,2,3,4,5],["jkl","mno","pqr",6,7,8,9,10]]

有什么相同的建议吗?

编辑 1:两个数组始终具有相同的长度。

马赫阿里

您可以map()在其中之一上使用concat()它,并将其与其他数组的相应元素一起使用

注意:我正在考虑两个数组的长度将相等

const arr1 = [["abc","def","ghi"],["jkl","mno","pqr"]];
const arr2 = [[1,2,3,4,5],[6,7,8,9,10]];

const flattern = (a1, a2) => a1.map((x, i) => x.concat(a2[i]))
console.log(flattern(arr1, arr2))

如果数组的长度不同,那么您必须首先找到较大的数组,然后对其进行映射。

const arr1 = [["abc","def","ghi"],["jkl","mno","pqr"], ['a','b','c']];
const arr2 = [[1,2,3,4,5],[6,7,8,9,10]];

const flattern = (a1, a2) =>{
  if(a1.length === a2.length){
    return a1.map((x, i) => x.concat(a2[i]))
  }
  else if(a1.length > a2.length){
    return a1.map((x, i) => x.concat(a2[i] || []))
  }
  else{
    return a2.map((x, i) => x.concat(a1[i] || []))
  }
} 
console.log(flattern(arr1, arr2))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章