首页 > 解决方案 > 在 Javascript 中创建一个名为 zip() 的函数

问题描述

作为练习的一部分,我将创建一个名为 zip 的函数。它需要两个元素长度相等的数组,然后将它们分成两个具有相同索引元素的数组。我知道还有其他使用 map 功能的解决方案,但我想弄清楚是否有其他解决方案。到目前为止,我有这个:

function zip(arr1, arr2) {
  let pairArr = [];
  for(var i = 0; i < arr1.length; i++) {
    if(arr1.length === arr2.length){
      let pairs = [arr1[i],arr2[i]];
      pairArr.push(pairs);
    } return pairArr;
  }
}

这仅返回一个具有两个数组的第一个索引的数组。[1, 2, 3, 4] [1, 2, 3, 4] 返回 [1, 1]。我需要它返回 [1, 1] [2, 2] [3, 3] [4, 4]。
谢谢你。

标签: javascriptarraysfunction

解决方案


您将 return 放入循环中。您应该将其添加到循环之外。例如:

function zip(arr1, arr2) {
       let pairArr = [];
             for(var i = 0; i < arr1.length; i++){
                 if (arr1.length === arr2.length){
                     let pairs = [arr1[i],arr2[i]];
                     pairArr.push(pairs);
                    } 
             }
             return pairArr;
     }
     
     
     
console.log(zip([1, 2, 3, 4], [1, 2, 3, 4] ));


推荐阅读