返回元素推送到Array

时间:2017-06-01 03:08:33

标签: javascript arrays

我有关于数组的问题。如果之前有人问过我,我会道歉,但我做了彻底的搜索,却找不到任何东西。

所以我试着编写一段简单的代码。想法是页面加载,出现一个提示框,询问名称,并继续,直到没有输入名称。

问题是,当我尝试在最后调用数组时,它只返回' true'而不是输入的实际名称。

我对数组很陌生,但我尝试了很多东西,而且我似乎无法获得返回的实际名称值。任何人都可以帮忙吗?

    var enterNames = new Array();
    var i;

    while(i = prompt("Please enter a name", "") != "")
    {
        enterNames.push(i);
    }
    document.write(enterNames);

提前感谢任何可以解决的问题。

干杯, 千斤顶

2 个答案:

答案 0 :(得分:1)

这是因为operator precedence:在while条件下!=被评估为第一个,产生一个布尔值,然后是{{1} }赋值恰好将该布尔值赋给=

您可以使用括号修复该问题,根据需要对事物进行分组:

i

在上下文中:



while((i = prompt("Please enter a name", "")) != "")




(请注意,在循环条件下执行赋值很多人都不赞成,但显然它确实有用。另请注意,var enterNames = []; var i; while((i = prompt("Please enter a name", "")) != "") { enterNames.push(i); } document.write(enterNames);通常[]优于new Array()来创建空数组,但要么有效。document.write()几乎总是一个糟糕的计划。)

答案 1 :(得分:0)



var enterNames = []; //instead of new Array();
function _prompt(){
  var i = prompt("Please enter a name", "");
  if(i==""){
    _prompt();
    return;
  }
  enterNames.push(i);
}
_prompt();
console.log(enterNames);