我有2散列(對象)爲前。合併散列與屬性數組
hash1 = {myKey: ["string1"]}
hash2 = {myKey: ["string2"]}
我想將它們合併在一起,所以最後我會得到類似以下 -
{myKey: ["string1", "string2"] }
我試過$.extend
,但對於數組是行不通的財產
我有2散列(對象)爲前。合併散列與屬性數組
hash1 = {myKey: ["string1"]}
hash2 = {myKey: ["string2"]}
我想將它們合併在一起,所以最後我會得到類似以下 -
{myKey: ["string1", "string2"] }
我試過$.extend
,但對於數組是行不通的財產
你可以爲此採取一項功能。
function add(o, v) {
Object.keys(v).forEach(function (k) {
o[k] = o[k] || [];
v[k].forEach(function (a) {
o[k].push(a);
});
});
}
var hash1 = { myKey: ["string1"] },
hash2 = { myKey: ["string2"] };
add(hash1, hash2);
document.write('<pre>' + JSON.stringify(hash1, 0, 4) + '</pre>');
可以Array.prototype.push.apply()
合併陣列
var hash1 = {myKey: ["string1"]};
var hash2 = {myKey: ["string1"]};
Array.prototype.push.apply(hash1.myKey, hash2.myKey)
console.log(hash1)
注:檢查你的鑰匙區分大小寫。
你可以做這樣的事情:
hash1 = {myKey: ["string1"]}
hash2 = {myKey: ["string2"]}
var result = {};
for (var hash1Key in hash1) {
if (hash1.hasOwnProperty(hash1Key)) {
for (var hash2Key in hash2) {
if (hash2.hasOwnProperty(hash2Key)) {
if (hash1Key === hash2Key) {
result[hash1Key] = [hash1[hash1Key], hash2[hash2Key]]
}
}
}
}
}
親身體驗在jsFiddle
你的鑰匙不匹配。 –