在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中文網其他相關文章!