簡體   English   中英

添加兩個數組並返回一個新數組

[英]Adding two arrays and returning a new array

編寫一個addArrays函數,該函數將2個數字數組作為參數,並返回一個新數組,其中將相同索引位置的元素加在一起。 例如:addArrays([1,2,3],[4,3,2,1]); // => [5,5,5,1]

我正在嘗試使用嵌套的for循環,但給出的答案不正確。

  function addArrays(num1, num2){
      var result = [];
      for(var i=0; i< num1.length; i++){
        for(var j=0; j<num2.length; j++){
          result.push(num1[i] + num2[j]);
      }
      }
      return result;
    }

我建議僅使用一個循環檢查長度,如果元素不存在,則使用一些默認值。

 function addArrays(array1, array2) { var i, l = Math.max(array1.length, array2.length), result = []; for (i = 0 ; i < l; i++) { result.push((array1[i] || 0) + (array2[i] || 0)); } return result; } console.log(addArrays([1, 2, 3], [4, 3, 2, 1])); 

無需嵌套2個循環。 如果您有二維數組,則使用數組的嵌套循環。

function addArrays(num1, num2){
    var result = [];
    var size = Math.max(num1.length, num2.length);

    for(var i = 0; i < size; i++){
        result.push(num1[i] + (num2[i]);

    }
    return result;
}

如果數組的長度不同並且像這樣結束,也可以將其默認設置為0

(num1[i] || 0) + (num2[i] || 0)

這將選擇數組中的數字,如果不存在則選擇0

function addArrays(num1, num2){
      var result = [];
      for(var i=0; i< num1.length; i++){
          result.push(num1[i] + num2[i]);
      }
      return result;
}

對於那些本質上有點進步的人...

let a = [1, 2, 3], b = [4, 3, 2, 1], l = Math.max(a.length, b.length)
const addArrays = ((a[l-1]) ? a : b).map((v, k) => (a[k] || 0) + (b[k] || 0))

console.log(addArrays) // [ 5, 5, 5, 1 ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM