js打印数组的函数范例

2016-02-22    编辑:kp12345     点击(
一起来看一篇js打印数组的函数范例的,对于不了解js打印数组的朋友可以和111cn小编一起来学学吧。

在js中,不像php那样拥有自带的print_r()、var_dump()打印数组的函数。为了方便日常调试,我们可以自己写一个打印的函数出来,就像php那样的。


实现不难,主要运用循环去遍历数组,同时运用Object.prototype.toString.call去判断如果元素仍是数组,则递归执行。

 

以下为打印的效果图,可以选择用alert打印,也可以选择用console.log打印到控制台。打印出来的效果跟php中的print_r比较像。

 

js打印数组函数效果1

 

效果1

 

js打印数组函数-打印到控制台

 

可以打印到控制台

js打印数组函数效果2

 

效果2

 

参考源码:

 

<!doctype html>

 

<html>

 

<head>

 

<meta charset="utf-8">

 

<title>js打印数组函数范例</title>

 

</head>

 

<body>

 

<script type="text/javascript">

 

  var arr = new Array('www.111cn.com');

 

  arr[1] = new Array('www','111cn','com');

 

  arrRes = print_arr(arr);

 

  alert(arrRes); //直接弹出

 

  console.log(arrRes); //在控制台打印

 

  /**

 

   * 打印数组

 

   * @param  {[type]} arr    要打印的数组

 

   * @param  {[type]} space  控制打印的缩进

 

   * @param  {[type]} space2 控制打印的缩进2

 

   */

 

  function print_arr(arr, space, space2)

 

  {

 

    space = space || '';

 

    space2 = space2 || '      ';

 

    var str = "Array "+space+"( ";

 

    for(var i=0; i<arr.length; i++)

 

    {

 

      if( Object.prototype.toString.call(arr[i]) == '[object Array]' )

 

      { //判断是否是数组,如果是,进行递归拼接

 

        str += space2 + '[' +i+"] => "+ print_arr(arr[i], space+'      ', space2+'      ');

 

      }

 

      else

 

      {

 

        str += space2 +'['+i+"] => "+ arr[i] +" ";

 

      }

 

    }

 

    str += space+") ";

 

    return str;

 

  }

 

</script>

 

</body>

 

</html>

 

可以把这个函数放到公共的js文件中,日常工作的时候就很方便调用调试了。