簡體   English   中英

如何組合這兩個JavaScript數組

[英]How to combine these two JavaScript arrays

我下面有兩個JavaScript數組,它們都有相同數量的條目,但這個數字可能會有所不同。

[{"branchids":"5006"},{"branchids":"5007"},{"branchids":"5009"}]      
[{"branchnames":"GrooveToyota"},{"branchnames":"GrooveSubaru"},{"branchnames":"GrooveFord"}] 

我想結合這兩個數組,以便我得到

[{"5006":"GrooveToyota"},{"5007":"GrooveSubaru"},{"5008":"GrooveFord"}]

我不確定如何把它說成文字,但希望有人理解。 我想用兩個任意長度的數組(雖然長度相同)。

任何提示贊賞。

這是一種拉鏈:

function zip(a, b) {
    var len = Math.min(a.length, b.length),
        zipped = [],
        i, obj;
    for (i = 0; i < len; i++) {
        obj= {};
        obj[a[i].branchids] = b[i].branchnames;
        zipped.push(obj);
    }
    return zipped;
}

示例(使用console.log即用戶)

var ids = [{"branchids":"5006"},{"branchids":"5007"},{"branchids":"5009"}];
var names = [{"branchnames":"GrooveToyota"},{"branchnames":"GrooveSubaru"},{"branchnames":"GrooveFord"}];
var combined = [];

for (var i = 0; i < ids.length; i++) {
    var combinedObject = {};
    combinedObject[ids[i].branchids] = names[i].branchnames;
    combined.push(combinedObject);
}

combined; // [{"5006":"GrooveToyota"},{"5006":"GrooveSubaru"},{"5006":"GrooveFord"}]

類似於@robert解決方案,但使用Array.prototype.map

var ids = [{“branchids”:“5006”},{“branchids”:“5007”},{“branchids”:“5009”}],names = [{“branchnames”:“GrooveToyota”},{“ branchnames“:”GrooveSubaru“},{”branchnames“:”GrooveFord“}],merged = ids.map(function(o,i){var obj = {}; obj [o.branchids] = names [i]。 branchnames; return obj;});

合並; // [{5006:“GrooveToyota”},{5006:“GrooveSubaru”},{5006:“GrooveFord”}]

干杯!

就個人而言,我會以IAbstractDownvoteFactor的方式(+1),但對於另一個選項,我提出以下為您的編碼樂趣:

var a = [{"branchids":"5006"},{"branchids":"5007"},{"branchids":"5009"}];
var b = [{"branchnames":"GrooveToyota"},{"branchnames":"GrooveSubaru"},{"branchnames":"GrooveFord"}];
var zipped = a.map(function(o,i){ var n={};n[o.branchids]=b[i].branchnames;return n;});

暫無
暫無

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

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