Javascript 从功能上访问对象属性

Javascript 从功能上访问对象属性,javascript,Javascript,我目前正在做以下工作: var item1 = new Object(); item1.name = 'a & b'; item1.description = 'Do a & then do b'; item1.untouched = 'Dont touch this'; var item2 = new Object(); item2.name = 'c'; item2.description = 'Do something else'; item2.untouched = '

我目前正在做以下工作:

var item1 = new Object();
item1.name = 'a & b';
item1.description = 'Do a & then do b';
item1.untouched = 'Dont touch this';

var item2 = new Object();
item2.name = 'c';
item2.description = 'Do something else';
item2.untouched = 'Dont touch this';

uppercaseProperties = function( properties, obj ) {
    properties.forEach( function( p ) { obj[ p ] = obj[ p ].toUpperCase() } );
    return obj;
}

[item1, item2].map( function( item ) {
    return this.uppercaseProperties( ['name', 'description'], item );
}, this );
为了简洁和表达,我宁愿使用
map
而不是
forEach
,例如

uppercaseProperties = function( properties, obj ) {
    properties.map( function( p ) { return obj[ p ].toUpperCase(); } );
    return obj;
}

但这不起作用,因为它只返回修改后的属性,而不是整个对象。所以我在这里需要做的是从功能上访问
obj
的成员
x
。现在我显然可以编写一个函数来实现这一点,但我想知道JavaScript是否有任何本机的功能?(FWIW,)

我不确定我是否明白,
Array.map
创建了一个数组,而您似乎正在创建一个对象,那么为什么要使用
map
?迭代一个单独的键集合并为每个键修改
obj
,您所拥有的一切似乎都很好。使用
.map()
将创建一个
新数组()
,其中包含
doSomething()
的结果,通常用于代替修改
obj
。否则,您希望看到什么样的改进?您需要说明您期望的输出是什么,您试图实现什么?如果您的目标是基于您的属性数组修改
obj
,那么您就完成了这一点。如果您的目标是不同的,那么您需要声明。此外,
doSomething(obj[x])
将立即调用该函数。谁知道呢。为了清晰起见,用一个全面的例子更新了这个问题。