簡體   English   中英

將兩個數組合並為一個數組javascript

[英]Combine two arrays into one array javascript

我目前有兩個陣列

array1 = [5, 10, 20]
array2 = [10, 20, 30]

無論是array3還是類似的東西:

array4 = [{"a":5, "b":10}, {"a":10, "b":20}, {"a":20, "b":30}]

我知道這可能是一個簡單的問題,但我甚至不確定會調用哪個array3所以很難谷歌這個。

非常簡單,首先我們創建一個結果數組,然后我們遍歷第一個數組並向其中添加元素。 這是一個工作小提琴。

請注意,在您的代碼中,您有{5,10}這樣的符號,這在JavaScript中是非法的,我假設您的意思是數組。

var result = [];
for(var i=0;i<array1.length;i++){
   result.push([array1[i],array2[i]]);
}

編輯后更新 ,似乎你想要對象,試試

var result = [];
for(var i=0;i<array1.length;i++){
   result.push({a:array1[i],b:array2[i]});//add object literal
}

如果您願意,還可以使用map並在功能上編寫相同的代碼。 這是這種實現的小提琴

這叫做zip ...

function zip() {
    var args = [].slice.call(arguments);
    var shortest = args.length==0 ? [] : args.reduce(function(a,b){
        return a.length<b.length ? a : b
    });

    return shortest.map(function(_,i){
        return args.map(function(array){return array[i]})
    });
}

使用許多這些實用程序功能檢查Underscore是一個很棒的js庫...

您可以使用ES6新功能輕松完成此操作

 var  array1 = [5, 10, 20];
   var   array2 = [10, 20, 30];
  var combineArray = [...array1 , ...array2];
       //output should be like this of combine array : [5, 10 ,20 ,10 ,20 ,30]

如果你想在兩個數組中添加額外的項目,那么你可以使用以下方式:

 var combineArray = [...array1 ,333, ...array2];
           //output should be like this of combine array : [5, 10 ,20 ,333 ,10 ,20 ,30] 

暫無
暫無

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

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