为什么这个变量未定义?(javascript)

时间:2018-01-17 12:51:56

标签: javascript

var contacts = {
  name:["John", "Jane"],
  surname:["Smith", "Doe"]
}

var list=[];
var showContact=""; 

var manager = prompt("Welcome to your contacts manager!\nEnter a number \
                for:\n1: List contacts\n2: Add a contact\n0: Exit");

if (manager === "1") {
  for (i=0; i<contacts.name.length && i<contacts.surname.length; i++){
    showContact = console.log(contacts.name[i] + " " + contacts.surname[i]);
    list[i]= showContact;
  }
}

console.log(showContact);
console.log(list);

我想了解这一点。我不知道为什么这个变量是未定义的。也许是因为范围?无论如何我不明白。

不应该showContact首先使用值“John Smith”,在循环结束时使用“Jane Doe”,因此打印它会返回“Jane Doe”吗?同样使用list,我得到两个值,这是正确的,但它们是未定义的。

我不想提出重复的问题,但为了做到这一点,我需要知道究竟有什么问题才能对其进行搜索。谢谢你的时间!

1 个答案:

答案 0 :(得分:3)

因为console.log没有返回值,请改为尝试:

showContact = contacts.name[i] + " " + contacts.surname[i];
list[i]= showContact;