我有一个对象:
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
,但是这样如何: