在 JavaScript 中为对象创建 Map 函数(替代 Array.map)
在 JavaScript 中,Array.prototype.map()方法广泛用于迭代数组并对每个元素应用指定的函数。但是,对象不存在类似的本机方法。本文通过引入对象的自定义映射函数来探索此限制的解决方案。
问题:
考虑一个具有键值对的对象:
myObject = { 'a': 1, 'b': 2, 'c': 3 };
目标是创建一个新对象,其中每个值都由指定函数进行转换。例如,让我们将值加倍:
newObject = myObject.map(function(value, label) { return value * 2; }); // newObject should now be { 'a': 2, 'b': 4, 'c': 6 }
解决方案:
尽管 JavaScript 缺乏对象的本机映射函数,但有一个使用 Object.map 的优雅解决方案。 keys() 和 forEach() 方法:
var myObject = { 'a': 1, 'b': 2, 'c': 3 }; Object.keys(myObject).forEach(function(key, index) { myObject[key] *= 2; }); console.log(myObject); // Output: { 'a': 2, 'b': 4, 'c': 6 }
在此代码:
此方法会就地修改原始对象,这在某些情况下可能并不理想。要使用转换后的值创建新对象,只需在应用转换之前克隆原始对象即可。
以上是如何在 JavaScript 中为对象创建映射函数?的详细内容。更多信息请关注PHP中文网其他相关文章!