我的代码有问题,它有运行错误,我正在尝试将对象转换为数组列表。在我的代码中,我试图在一个数组内构建一个数组!我期望具有以下返回值:
[['name', 'Holly'], ['age' , 35], ['role', 'producer' ],
['species', 'canine'], ['name', 'Bowser'], ['weight', 45]]
我将不胜感激任何帮助或建议。
var obj1 = {
name: 'Holly',
age: 35,
role: 'producer'
};
var obj2 = {
species: 'canine',
name: 'Bowser',
weight: '45'
};
function convertObjectToList(obj) {
var arrayExt = []; // declare my external array container
var arrayInt = []; // declare my internal arrays container
var objKeys = Object.getOwnPropertyNames(obj); // returns all properties (enumerable or not) found directly upon a given object.
for (var k in obj) {
if (var i = 0; i < objKeys.length; i++);
arrayInt = [];
arrayInt.push(obj(objKeys[k]));
arrayExt.push(arrayInt);
console.log(arrayExt);
}
}
convertObjectToList(obj);
你可以只用一个使用的组合Object.keys
,Array.map
和Array.concat
function toArray(obj) {
return Object.keys(obj).map(k => [k, obj[k]]);
}
var obj1 = { name: 'Holly', age: 35, role: 'producer' };
var obj2 = { species: 'canine', name: 'Bowser', weight: '45'};
console.log(toArray(obj1).concat(toArray(obj2)))
通常,应避免for...in
循环。现在有许多更好的选择。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句