从数组javascript中递归构建树

时间:2015-05-28 16:38:18

标签: javascript arrays recursion

.csv文件我需要使用下面的三列构建树结构。 列状态应该是父节点, id 状态的子节点, ndi 是<的子节点strong> id 节点。 目前我的程序可以读取.csv文件并将其存储在二维数组中。

这是我的代码:Link to .csv file

<body>
<input type="file" id="files" name="files[]" multiple />
<output id="list"></output>

<script>
  function handleFileSelect(evt) {
    var files = evt.target.files; 


    for (var i = 0, f; f = files[i]; i++) {

      var reader = new FileReader();

      reader.onload = (function(theFile) {
        return function(e) {

          var string = e.target.result;
          console.log(string);

          var array1=string.split("\n");
          alert(array1.length)
          var array2 = new Array();


          for(var i=0; i< array1.length; i++){
            array2[i] = array1[i].split(",");
          }
          //completed upto saving as 2D array

        };
      })(f);

      reader.readAsText(f);

      }
    }
  document.getElementById('files').addEventListener('change', handleFileSelect, false);
</script>

我想用它构建一个树形结构。

2 个答案:

答案 0 :(得分:0)

这应该这样做,用下面的代码替换你的第二个var filter = new CommitFilter { Since = repo.Head }; foreach (var commit in repo.Commits.QueryBy(filter)) { Console.WriteLine(commit.Sha); }

for

答案 1 :(得分:0)

如果我没有理解你,那应该可以解决问题:

function buildTree(input) {
    var output = {};
    for (var i in input) {
        var state = input[0];
        var id = input[1];
        var ndi = input[2];
        if (output[state] === undefined) output[state] = {};
        if (output[state][id] === undefined) output[state][id] = [];
        output[state][id].push(ndi);
    };
    return output;
};