如何在循环外获取循环值

时间:2017-02-15 14:01:18

标签: javascript loops

如何在循环下面获取循环值只显示最后一个值,例如,如果我想打印循环结果。

var result;

    for (var i=0; i < 10; i++) {
          result = i;
    }

    console.log(result);

现在我如何在控制台中获得循环的迭代值(1到10),因为现在我只打印最后一个10的值。

4 个答案:

答案 0 :(得分:4)

将log语句放在设置值的循环中。

var result;

for (var i=0; i < 10; i++) {
    result = i;
    console.log(result);
}

如果您只需要一个输出语句,则可以在记录之前连接结果:

var result = "";

for (var i=0; i < 10; i++) {
    result += i + " ";
}

console.log(result);

这将输出0 1 2 3 4 5 6 7 8 9 10

答案 1 :(得分:2)

如果你真的想在循环之外登录,我认为这是非常不必要的,可能会使用数组吗? :

var result=[];

for (var i=0; i < 10; i++) {
      result.push(i);
}
console.log(...result);

http://jsbin.com/gogeluhavi/edit?console

如果你想让结果make神奇地记录,你可以使用setter和一个代理,所谓的Observables。

在此控制台中输入result = 10,我已为您实施了一个Observable:http://jsbin.com/xacujabuwo/edit?console;您也可以粘贴for循环...

答案 2 :(得分:1)

以上的回答是正确的,但我想为你清理它,所以你也理解它。
在原始代码中,您已在循环外声明变量“result”,然后在每次迭代时为您的变量赋值。因此,第一次围绕“结果”= 0,第二次循环和“结果”= 1,依此类推。

当for循环结束时,它会读取下一行,这是你的console.log()语句,变量为“result”。变量“result”的最后一次修改是在第10次迭代的for循环中,那就是让它等于迭代器的位置,因此迭代器的值为11。
为了在每次迭代时显示某些内容,必须将console.log()放在循环中。请查看以下示例

 var result;
for (var i=0; i < 10; i++) {
    result = i;
    console.log(result); // prints at every iteration
}

答案 3 :(得分:0)

由于你没有添加jQuery标签我只使用了javascript。

添加输入隐藏标记

<input id="idOfInput" style="visibility:hidden" type="text">

将所需值设置为输入

for (var i=0; i < 10; i++) {
result = i;
document.getElementById('idOfInput').value = result;
document.getElementById('idOfInput').change(); //note change() is to trigger the event
}

添加更改事件侦听器并获取在循环中设置的值

var input = document.getElementById('idOfInput');
input.addEventListener('input', function()
{
    console.log('input changed to: ', input.value); //you get the value here
});

希望有所帮助