是否可以在for循环条件中使用if..else语句?

时间:2016-09-27 09:36:22

标签: javascript loops



for(var i = n1; 
    if(n3>0){i<=n2} 
    else if(n3<0){i>=n2} 
    else{window.alert('error')}; 
    i += n3){
	  nArr.push(i);
}
&#13;
&#13;
&#13;

这是我想要运行的代码..不知何故..我想做范围功能,从步骤到数字写入数字..我完成了积极的方式,但当我想要消极我&#39;我只想反转&#34; i&lt; = n2&#34;签到&#34; i&gt; = n2&#34;而不是写另一个循环..这可能吗?

提前致谢, chiff:)

4 个答案:

答案 0 :(得分:1)

你可以像这样结合你的陈述:

n3

但我不建议为了便于阅读

另外,请注意,您在每次循环迭代时检查var $wrapper = $('#list'); $("#sort").click(function() { $wrapper.find('.items').sort(function(a, b) { var splitA = $(a).data('sort').split('.'); var splitB = $(b).data('sort').split('.'); return splitA[0] == splitB[0] ? splitA[1] - splitB[1] : splitA[0] - splitB[0]; }).appendTo($wrapper); });条件,这不好,因为它只能执行一次

答案 1 :(得分:0)

你可以完成你想要做的事情:

{
"Version" : "1.0.0",
"Number of Elements" : 3043,

"Elements": [{
    "Index" : 0,
    "coordinates": [ [1768, 98], [1784, 90], [1789, 81], [1791, 68], [1785, 52], [1774, 41], [1767, 39], [1742, 48], [1736, 53], [1734, 59], [1736, 69], [1748, 90] ],
    "Surface" : 995.55,
    "Perimeter" : 114.74,
    "Center X" : 1137.53,
    "Center Y" : 43.79
},{
    "Index" : 1,
    "coordinates": [ [1709, 119], [1725, 112], [1739, 102], [1744, 91], [1733, 66], [1708, 49], [1698, 51], [1685, 60], [1677, 68], [1674, 81], [1675, 90], [1682, 105], [1697, 116] ],
    "Surface" : 1414.90,
    "Perimeter" : 136.44,
    "Center X" : 1101.35,
    "Center Y" : 54.69
},{
    "Index" : 2,
    "coordinates": [ [1648, 109], [1664, 97], [1667, 90], [1666, 80], [1657, 68], [1617, 52], [1611, 53], [1603, 64], [1613, 79], [1616, 95], [1626, 106] ],
    "Surface" : 973.50,
    "Perimeter" : 120.49,
    "Center X" : 1055.04,
    "Center Y" : 52.38
} ...

答案 2 :(得分:0)

JS中的

if不是表达式,所以我猜不应该。然而,IIFE可以做到这一点:

var a = 5;
for (var i = 0; (function() {
  if (a > 3)
    return i < 2;
  else
    return i < 4;
})(); i++) {
  document.write(i);
}

但是,通过将循环放在if内,你可以使它变得更加清晰和清晰。

答案 3 :(得分:0)

不,你不应该在for循环体内使用if-else语句。特别是如果它包含alert()窗口。

在您的特定情况下,最好使用while语句。

var i = n1;
while ((n3 > 0 && i <= n2) || (n3 < 0 && i >= n2)) {
  nArr.push(i);
  i += n3;
}

我不确切地知道你想要达到什么,但这是它的一个要点。