我有2个哈希(对象),例如
hash1 = {myKey: ["string1"]}
hash2 = {myKey: ["string2"]}
我想将它们合并在一起,所以最后我会得到类似的内容 -
{myKey: ["string1", "string2"] }
我尝试了$.extend
,但这对于数组属性
答案 0 :(得分:1)
你可以为此做一个功能。
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>');
答案 1 :(得分:0)
您可以Array.prototype.push.apply()
合并数组
var hash1 = {myKey: ["string1"]};
var hash2 = {myKey: ["string1"]};
Array.prototype.push.apply(hash1.myKey, hash2.myKey)
console.log(hash1)
答案 2 :(得分:0)
注意:检查密钥的区分大小写。
您可以这样做:
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]]
}
}
}
}
}
中查看