【发布时间】:2011-07-30 23:33:55
【问题描述】:
这与其说是一个问题,不如说是对 cmets 的请求。
我有两个对象,我想将它们合并在一起,取第二个的值,并与第一个的值合并(覆盖),同时保留第一个的属性名称。
第二个对象中的键名很长且易于描述,而第一个对象的键名简洁而难看,以节省字节。
在第二个对象的可读性成为问题之前,我使用的是 jQuery,所以现在我将自己的方式组合在一起。但是,由于迭代对象不会以原始顺序返回它们的键/值对,我想知道这是否是一个长期可行的解决方案。希望代码能更好地解释这一点。
请提出想法,并在此先感谢! :)
var ob = {}, i = 0, k, pArr = [];
for( k in p ){
if( p.hasOwnProperty(k) ){
pArr.push(k);
}
}
for( k in c ){
if( c.hasOwnProperty(k) ){
ob[pArr[i]] = c[k];
}
i++;
}
ob 对象现在具有第二个对象的所有属性,但具有第一个对象的键名。这确实有效,但感觉很难看,我想知道是否有更好的方法。
【问题讨论】:
标签: javascript arrays object