在console.log中出现“未定义”错误

时间:2017-04-23 02:46:26

标签: javascript

编写一个名为“getAllKeys”的函数,它返回所有输入对象键的数组。

示例输入:

{
  name : 'Sam',
  age : 25,
  hasPets : true
}

函数的返回值(输出):

['name', 'age', 'hasPets']

请勿使用“Object.keys”来解决此提示。

我的解决方案如下。

function getAllKeys(obj) {
  var arrayToPrint = [];
  for (var key in obj) {
    arrayToPrint.push(key);
  }
  console.log(arrayToPrint);
}

obj1 = {
  name : 'Sam',
  age : 25,
  hasPets : true
};

getAllKeys(obj1);

控制台输出:

enter image description here

有人可以解释一下,为什么我会得到这个未定义的?

1 个答案:

答案 0 :(得分:1)

那是因为该功能没有返回任何东西。如果函数显式不返回值,则函数将返回undefined。

您可以从该功能返回arrayToPrint并登录getAllKeys(obj1)

function getAllKeys(obj) {
  var arrayToPrint = [];
  for (var key in obj) {
    arrayToPrint.push(key);
  }
  return arrayToPrint; // changed here
}

obj1 = {
  name : 'Sam',
  age : 25,
  hasPets : true
};

console.log(getAllKeys(obj1)); // changed here

DEMO