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,
}));

10-08 16:04