如何修改和还原简单的Java Script循环

时间:2015-10-11 10:54:22

标签: javascript loops for-loop console

我学习Java Script的基础知识。我想在控制台中打印以下内容:

*2345
**345
***45
****5
*****
*****
****5
***45
**345
*2345

我已经编写了代码: var x = 5; var line;

for(var i = 0; i<x; i=i+1){
    line = "";
    for(var j=0; j<x; j=j+1){
        if(j <= i){
            line = line + " * ";
        }
    }
    console.log(line);
}
for(var i = x; i>0; i--){
    line = "";
    for(var j=0; j<x; j=j+1){
        if(j <= i-1){
            line = line + " * ";
        }
    }
    console.log(line)
}

结果是:

*
**
***
****
*****
*****
****
***
**
*

有人可以帮我修改循环吗?我尝试过各种各样的东西,但它永远不会奏效。

3 个答案:

答案 0 :(得分:2)

您可以将这个用于if条件:

else {
line += j + 1;
}

答案 1 :(得分:1)

&#13;
&#13;
var baseString = "12345";
var starStrings = [];

for(var i = 0; i < baseString.length; i++){
  starStrings.push("*".repeat(i + 1) + baseString.slice(i + 1));
}
starStrings = starStrings.concat(starStrings.slice().reverse());

starStrings.forEach(function(s){
  document.write(s + "<br />");  
});
&#13;
&#13;
&#13;

答案 2 :(得分:1)

我会这样做的:

    var numbers = [1,2,3,4,5],
    nLength = numbers.length,
    result = [],
    stringOf = function( value,times,str ) {

      if( 'undefined' === typeof str )
        str = '';

      if( times === 0 )
        return str;

      str += value;

      times--;

      return stringOf( value,times,str );

    },
    log = function( el ) { console.log( el ) };

for ( var i = 0; i < nLength; i++ ) {

  result[ i ] = stringOf( '*',i + 1 ) + numbers.slice( i + 1,nLength).join('');
  result[ i + nLength ] = stringOf( '*',nLength - i ) + numbers.slice( nLength - i,nLength).join('');

}

result.map( log );

输出:

*2345
**345
***45
****5
*****
*****
****5
***45
**345
*2345

编辑numbers数组会改变输出,其输出方式与指定的方式相同。