[英]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;
}
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.