我有一个像这样的键值对
var classes = { red: 'Red', green: 'Green' };
如何为每个键添加特定值?这可以使用 jQuery.map 完成吗?
我要找的最终结果是
classes = { 'a-red': 'Red', 'a-green': 'Green' };
最佳答案
给定的答案是可行的,但它们不如使用像 $.map 这样的纯函数结构那么有趣。这是一个纯功能版本:
$.extend.apply(null, $.map(classes, function(v,k) { var h = {}; h["a-" + k] = v; return h }));
这分两步进行:首先,映射对原始对象的键值对进行操作,并返回单值对象列表。其次,$.extend function将所有这些组合成一个对象; .apply method用于将参数作为数组传递给函数。
不幸的是,缺乏一种很好的方法来制作具有可变键名的对象字面量,这使得这种方式变得丑陋,而且可能效率不高,但却是一个漂亮的单行代码!
关于javascript - 使用 jQuery.map 修改对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3890615/