我有一個物件:
myObject = { 'a': 1, 'b': 2, 'c': 3 }
我正在尋找一個類似於 Array.prototype.map
的本機方法,其使用方式如下:
newObject = myObject.map(function (value, label) { return value * value; }); // newObject is now { 'a': 1, 'b': 4, 'c': 9 }
JavaScript有這樣的物件的 map
函數嗎? (我想要 Node.JS 的這個,所以我不關心跨瀏覽器問題。)
用 JS ES10 / ES2019 寫一句一行怎麼樣?
利用
Object.entries( )
和 Object.fromEntries():將同樣的東西寫成函數:
此函數也使用遞歸來平方巢狀物件:
在ES7 / ES2016中,您無法使用
Objects.fromEntries
,但您可以使用Object.assign
# 與擴充運算子 和計算鍵名稱語法:ES6 / ES2015 不允許
Object.entries
,但您可以使用Object.keys
改為:ES6 也引入了
for...of
循環,允許更命令式的風格:數組.reduce()
您也可以使用Object.fromEntries 和
Object.assign
/Web /JavaScript/Reference/Global_Objects/Array/reduce" rel="noreferrer">reduce 為此:繼承屬性與原型鏈:
在某些罕見的情況下,您可能需要對應一個類別對象,該物件在其原型鏈。在這種情況下,
Object.keys()
和Object.entries()
將不起作用,因為這些函數不包含原型鏈。如果您需要映射繼承屬性,可以使用
for (key in myObj) {...}
。以下是此類情況的範例:
但是,請幫我一個忙,避免繼承。 :-)
沒有到
Object
物件的本機map
#,但是這樣如何: