JavaScript数组到对象?

JavaScript数组到对象?,javascript,arrays,object,Javascript,Arrays,Object,编写一个名为“convertObjectToList”的函数,将对象文字转换为数组数组,如下所示: 论据: { name: 'Holly', age: 35, role: 'producer' } 返回值: [['name', 'Holly'], ['age', 35], ['role', 'producer']] 请注意,您的函数应该能够处理像这样的任何对象,而不仅仅是上面提供的确切示例 例如,它还应该能够处理这个或任何其他包含简单键值对的对象 { species: 'ca

编写一个名为“convertObjectToList”的函数,将对象文字转换为数组数组,如下所示: 论据:

{
  name: 'Holly',
  age: 35,
  role: 'producer'
}
返回值:

[['name', 'Holly'], ['age', 35], ['role', 'producer']]
请注意,您的函数应该能够处理像这样的任何对象,而不仅仅是上面提供的确切示例

例如,它还应该能够处理这个或任何其他包含简单键值对的对象

{
  species: 'canine',
  name: 'Bowser',
  weight: 45
}

我试图获得一个对象的大小,然后通过在for循环中一次为array[number]分配一个值和一个键,将其转换为一个数组。当我调用sizex(obj1)时,你能告诉我怎么做吗;我得到3,但当我调用convertObjectToList(obj1)时;我得到空数组:[]

大约10天前我学习了JS,由于我正在学习,有些任务仍然有点混乱。欢迎任何帮助

以下是我目前掌握的代码:

var names = [];
var values = [];

var sizex = function(obj) {
    var num = 0;
    var lol;
    for (lol in obj) {
        if (obj.hasOwnProperty(lol)) num++;
    }
    return num;
};

function convertObjectToList(obj) {
    // your code here



    for (j = 0; j < sizex; j++) {

        for (var name in obj) {
            names[j] = name;

            values[j] = obj[name];
        }
    }
    return names.concat(values);
}


var obj1 = {
    name: 'Holly',
    age: 35,
    role: 'producer'
}

sizex(obj1);
convertObjectToList(obj1);
var name=[];
var值=[];
var sizex=功能(obj){
var num=0;
var-lol;
用于(对象中的lol){
if(obj.hasOwnProperty(lol))num++;
}
返回num;
};
函数转换对象列表(obj){
//你的代码在这里
对于(j=0;j

谢谢你们,这两个代码都能工作,第二个代码更简单,但网站给了我一个错误,说“converts\u some\u other\u data=false”,第一个代码完全工作了。再次感谢

您可以使用
Object.keys()
map()

var data={name:'Holly',年龄:35岁,角色:'producer'}
功能到阵列(obj){
返回Object.keys(obj.map)(e=>[e,obj[e]]
}

console.log(toArray(data))
您可以使用
Object.keys()
map()

var data={name:'Holly',年龄:35岁,角色:'producer'}
功能到阵列(obj){
返回Object.keys(obj.map)(e=>[e,obj[e]]
}

console.log(toArray(data))
在ES2017中有一个函数正好可以做到这一点:


它在node.js版本(7.2.0)中工作,没有任何标志或任何东西。它可能也适用于早期版本,但我不确定要追溯到多久。

在ES2017中有一个函数可以做到这一点:


它在node.js版本(7.2.0)中工作,没有任何标志或任何东西。它可能也适用于早期版本,但我不知道有多远。

可以使用var sizex=Object.keys(obj).length代替函数;可以使用var sizex=Object.keys(obj.length)代替函数;
const convertObjectToList = Object.entries;

convertObjectToList( {
  name: 'Holly',
  age: 35,
  role: 'producer'
} );

// [['name', 'Holly'], ['age', 35], ['role', 'producer']]