编写一个名为"convertObjectToList"的函数,它将对象文字转换为数组数组,如下所示:参数:
{ name: 'Holly', age: 35, role: 'producer' }
返回值:
[['name', 'Holly'], ['age', 35], ['role', 'producer']]
请注意,您的函数应该能够处理这样的任何对象,而不仅仅是上面提供的确切示例.
例如,它也应该能够处理这个或任何其他包含简单键值对的对象.
{ species: 'canine', name: 'Bowser', weight: 45 }
我试图获取一个对象的大小,然后通过在for循环中一次分配一个数组[数字]一个值和一个键,将它变成一个数组,当我调用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);
谢谢大家,两个代码都工作,第二个代码更简单,但网站给了我一个错误说"converters_some_other_data = false",第一个代码完全工作.再次感谢.
你可以用Object.keys()
和做map()
var data = { name: 'Holly', age: 35, role: 'producer' }
function toArray(obj) {
return Object.keys(obj).map(e => [e, obj[e]])
}
console.log(toArray(data))