首页 > 解决方案 > 将函数对象转换为数组

问题描述

假设我们有这样的对象:

myObj = {
  function1 : function(d){return d+1;},
  function2 : function(d){return d+2;},
  function3 : function(d){return d+3;}
}

如何将此对象转换为此类对象的数组:

{name : "function1", func: function()} 

function()真正的功能在哪里?

标签: javascriptarraysjavascript-objects

解决方案


您可以map()Object.entries()

const myObj = {
  function1 : function(d){return d+1;},
  function2 : function(d){return d+2;},
  function3 : function(d){return d+3;}
}

const arr = Object.entries(myObj).map(([name, func]) => ({name, func}));

console.log(arr)

如果您注意到我使用func了而不是function因为function是保留关键字并且您不能命名变量function。如果您想使用该名称,可以使用以下代码。

注意:不要使用function或任何其他保留关键字作为属性名称。因为您将无法使用相同的名称对其进行解构。

const myObj = {
  function1 : function(d){return d+1;},
  function2 : function(d){return d+2;},
  function3 : function(d){return d+3;}
}

const arr = Object.entries(myObj).map(([name, func]) => ({name, function: func}));

console.log(arr)


推荐阅读