I am confused what the difference is between mine and the 'correct way'. I get my way is wrong scope but how did it result the way it did? I am not understanding how the result came out.
Here is the function:
convertObjectToList({
name: 'Holly',
age: 35,
role: 'producer'
});
Desired answer: [['name', 'Holly'], ['age', 35], ['role', 'producer']]
My way:
function convertObjectToList(obj) {
var brackOut = [];
var brackIn = [];
for (let key in obj) {
brackIn.push(key);
brackIn.push(obj[key]);
brackOut.push(brackIn);
}
return brackOut;
}
convertObjectToList({
name: 'Holly',
age: 35,
role: 'producer'
});
Result:
[ [ 'name', 'Holly', 'age', 35, 'role', 'producer' ],
[ 'name', 'Holly', 'age', 35, 'role', 'producer' ],
[ 'name', 'Holly', 'age', 35, 'role', 'producer' ] ]
vs.
The 'correct way':
function convertObjectToList(obj) {
var brackOut = [];
for (let key in obj) {
var brackIn = [];
brackIn.push(key);
brackIn.push(obj[key]);
brackOut.push(brackIn);
}
return brackOut;
}
convertObjectToList({
name: 'Holly',
age: 35,
role: 'producer'
})
Result: [ [ 'name', 'Holly' ], [ 'age', 35 ], [ 'role', 'producer' ] ]
It has to do with the scope of variable, but can someone explain how my answer got that way? How does this work?