日期:2014-05-16  浏览次数:20393 次

js循环问题
我在用在zTree做一个树,静态数据格式是
  var treeNodes=[
  {id:1,pId:0,name::"SVC25001"},
  {id:2,pId:6,name:"SVC25002"},
  {id:3,pId:2,name:"SVC2500220100601"}
我呢 现在已经从后台把数据库取得的数据List已经转换成json格式的 data了,data也有值了,

现在问题是:我不会写循环把{id:data[i].id,pId:data[i].pId,name:data[i].name}一个一个的通过循环组成上面的格式,求教啊,不知道各位理解我的意思了没??

------解决方案--------------------
[{},{},{}],这个数据是一个对象的数组
照你的描述data本身就是这样一个数组,而且属性的名称也是符合需要的
所以不用转换

var treeNodes=data;
这样就可以了,

实在要转换
var treeNodes=new Array();
for(var i=0;i<data.length;i++)
{
treeNodes.push({id:data[i].id,pId:data[i].pId,name:data[i].name});
}
------解决方案--------------------
JScript code

<script type="text/javascript">
  $(function(){
    var treeNodes=[];
    function formatDate(id,pId,name){
      return {
        id:id,
        pId:pId,
        name:name
      };
    }
    for(var i = 0,len = data.length;i < len;i++){
      treeNodes.push(formatDate(data[i].id,data[i].pId,data[i].name));
    }
  });
</script>

------解决方案--------------------
大括号是一个Object。
中括号是一个数组。
循环外面:
var arr=new Array();
在循环里面:
var obj=new Object();
obj.id="";
obj.pId="";
obj.name="";
arr.push(obj);

当然,这只是生成一个Array对象