使用while循环

时间:2016-04-07 17:05:28

标签: javascript

我是JavaScript的新手,我正在尝试使用while语句编写一个简单的函数来打印数组元素,但最后我得到了一个额外的未定义值。任何帮助将受到高度赞赏

代码是:

var a = [1, 3, 6, 78, 87];

function printArray(a) {

    if (a.length == 0) {
        document.write("the array is empty");
    } else {
        var i = 0;
        do {
            document.write("the " + i + "element of the array is " + a[i] + "</br>");

        }
        while (++i < a.length);
    }
}

document.write(printArray(a) + "</br>");

,输出为:

the 0element of the array is 1
the 1element of the array is 3
the 2element of the array is 6
the 3element of the array is 78
the 4element of the array is 87
undefined

我如何获得未定义的值?我跳过任何索引吗?提前谢谢!

2 个答案:

答案 0 :(得分:3)

发生这种情况的原因是因为您的printArray函数未返回任何值,这意味着它实际上正在返回undefined

您可以通过两种方式解决此问题:

  1. document.write(printArray(a) + "</br>");更改为printArray(a);document.write("<br/>")]
  2. 让printArray返回一个字符串,而不是执行document.write并保留其他代码
  3. 建议采用第二种方法,并注意不建议使用document.write,尝试设置document.body.innerHTML或类似的内容

    建议您阅读这些内容以供将来参考:

    Array.forEach

    Why is document.write a bad practice

答案 1 :(得分:0)

var a = [1, 3, 6, 78, 87];

function myFunction() {
    var i = 0;
    while (i < a.length) {
        document.write("the " + i + "element of the array is " + a[i] + "</br>");
        i++;
    }
}