使用for循环来排序依赖

时间:2017-01-26 23:17:54

标签: javascript arrays

var input = [  "KittenService: ",   "Leetmeme: Cyberportal",   "Cyberportal: Ice",   "CamelCaser: KittenService",   "Fraudstream: Leetmeme",   "Ice: "];

var output = [];

function valid(input) {
  for(var i = 0; i < input.length; i++) {
    var array = input[i].trim().split(':');
    var packageName = array[0].trim();
    var dependencyName = array[1].trim();
    if(array.length > 1 && dependencyName === '') {

      if(output.indexOf(packageName) === -1) {
        output.push(packageName);
      }
      else {
        return;
      }
    }
    else if(array.length > 1 && dependencyName !== '') {
      if (output.indexOf(dependencyName) === -1) { 
      output.push(dependencyName); 
      if(output.indexOf(dependencyName) > -1) {
        if(output.indexOf(packageName) > -1) {
         continue;
         }
         else {
           output.push(packageName);
         }
       }
      }
      else if(output.indexOf(dependencyName) > -1) {
        output.push(packageName);
      }
    }
  }
  return output.join(', ');
 }
 valid(input);

我正试图找出使输出成为

的方法
  

&#34; KittenService,Ice,Cyber​​portal,Leetmeme,CamelCaser,Fraudstream&#34;

正确记录

  

&#39; KittenService,Cyber​​portal,Leetmeme,Ice,CamelCaser,Fraudstream&#39;

在输入依赖项之前,我不确定如何使用依赖项推送所有输入。

1 个答案:

答案 0 :(得分:2)

问题只是如果没有包名而没有使用继续,则返回。

&#13;
&#13;
var input =[ "KittenService: CamelCaser", "CamelCaser: " ]

var output = [];

function valid(input) {
  for(var i = 0; i < input.length; i++) {
    var array = input[i].trim().split(':');
    var packageName = array[0].trim();
    var dependencyName = array[1].trim();
    if(array.length > 1 && dependencyName === '') {

      if(output.indexOf(packageName) === -1) {
        output.push(packageName);
      }
      else {
        continue;
      }
    }
    else if(array.length > 1 && dependencyName !== '') {
      if (output.indexOf(dependencyName) === -1) { 
        output.push(dependencyName); 
        if(output.indexOf(dependencyName) > -1) {
          output.push(packageName);
        }
      }
    }
  }
  return output;
}
console.log(valid(input));
&#13;
&#13;
&#13;