function convertObjectToList(obj) {
var innerArr= [];
var outerArr=[];
for (var prop in obj) {
innerArr.push(prop);
innerArr.push(obj[prop]);
console.log(innerArr);
outerArr.push(innerArr);
console.log(outerArr);
} return outerArr;
}
convertObjectToList({
name: 'Holly',
age: 35,
})
有人可以帮我弄清楚for循环内发生了什么吗?
问:我的问题在第二轮:
outerArr[0]= [ ‘name’, ‘Holly’ ], but the console shows me outerArr[0]= [ ‘name’, ‘Holly’, ‘age’, 35 ]
实际输出:
1.第一轮:
innerArr=[ ‘name’, ‘Holly’ ] & outerArr = [ [ ‘name’, ‘Holly’ ] ]
2.第二轮:
innerArr=[ ‘name’, ‘Holly’, ‘age’, 35 ] & outerArr=[ [ ‘name’, ‘Holly’, ‘age’, 35 ],[ ‘name’, ‘Holly’, ‘age’, 35 ] ]
但我期望:
outerArr= [ [ ‘name’, ‘Holly’ ], [ ‘name’, ‘Holly’, ‘age’, 35 ] ]
最佳答案
您可以在循环中创建内部数组的新副本。
function convertObjectToList(obj) {
var outerArr=[];
var innerArr = [];
var i = 0;
for (var prop in obj) {
innerArr = Array.slice(innerArr);
innerArr.push(prop);
innerArr.push(obj[prop]);
outerArr.push(innerArr);
} return outerArr;
}
console.log(convertObjectToList({
name: 'Holly',
age: 35,
}));