Ich habe ein Objekt:
myObject = { 'a': 1, 'b': 2, 'c': 3 }
Ich suche eine native Methode ähnlich Array.prototype.map
, die wie folgt verwendet werden kann:
newObject = myObject.map(function (value, label) { return value * value; }); // newObject is now { 'a': 1, 'b': 4, 'c': 9 }
Hat JavaScript eine map
Funktion für ein solches Objekt? (Ich möchte dies für Node.JS, daher interessieren mich browserübergreifende Probleme nicht.)
用 JS ES10 / ES2019 写一句一行怎么样?
利用
Object.entries( )
和 Object.fromEntries():将同样的东西写成函数:
此函数还使用递归来平方嵌套对象:
在ES7 / ES2016中,您无法使用
Objects.fromEntries
,但您可以使用Object.assign
与 扩展运算符 和 计算键名称语法:ES6 / ES2015 不允许
Object.entries
,但您可以使用Object.keys
改为:ES6 还引入了
for...of
循环,允许更加命令式的风格:数组.reduce()
您还可以使用 reduce 为此:
继承属性和原型链:
在某些罕见的情况下,您可能需要映射一个类对象,该对象在其原型链。在这种情况下,
Object.keys()
和Object.entries()
将不起作用,因为这些函数不包含原型链。如果您需要映射继承属性,可以使用
for (key in myObj) {...}
。以下是此类情况的示例:
但是,请帮我一个忙,避免继承。 :-)
没有到
Object
对象的本机map
,但是这样如何: