第一个哈希是
a = {"10167": "Hello", "10122": "World", "10245": "Hello2", "10035": "People"}
第二个哈希是
b = {"A": "one", "B": "10122", "C": "Three"}
我希望得到以下内容:
b = {"A": "one", "B": "10122", "B_Description": "World", "C": "Three"}
每当散列a
键出现在散列b
值中时,我想在其旁边插入一个新项目。
由于
答案 0 :(得分:2)
答案在于循环每个对象的键和元素。找到匹配项后,添加它。 http://jsfiddle.net/2x6Lws96/1/
var a = {"10167":"Hello", "10122":"World", "10245":"Hello2", "10035":"People"};
var b = {"A": "one", "B": "10122", "C": "Three"};
var akeys = Object.keys(a);
for(bkey in b) {
if(a[b[bkey]]) {
b[bkey+'_Description'] = a[b[bkey]];
}
}
修改强> 这只适用于IE9及更高版本(以及几乎任何其他浏览器)https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
在JS中,你不要插入'价值观成对象。只需指定myObject.newField = 'newValue'
编辑2
根据Felix的建议进行了更新
答案 1 :(得分:0)
试试这个。
var a = {"10167": "Hello", "10122": "World", "10245": "Hello2", "10035": "People"};
var b = {"A": "one", "B": "10122", "C": "Three"};
for(var prop in b) {
var val = a[b[prop]];
if(val != undefined) {
b[prop + '_Description'] = val;
}
}
答案 2 :(得分:-1)
如果您能够使用图书馆,那么有很多很好的解决方案,包括lodash's assign()。
如果您想自己完成此操作,可以迭代源对象的键并将值插入目标:
Object.keys(a).forEach(function (key) {
b[key] = a[key];
});