2016-10-05 14 views
0

JavaScript内のキー内のオブジェクトをループして、string.prototypeを使用しようとしています.replaceメソッドをGulpJS連結目的のためのjsファイルへのパスの配列に対して置き換えます。string.prototype.replaceメソッドと一致しないobject.keys foreachループ内のオブジェクトを返すことができません

ここでの目標は、GULPで使用可能なパスのリストを出力することですが、現在はその前に処理する必要があります。これを行うには、既存の 'placeholder'値をpaths配列に代入して、サブ配列内の対応する置換値を使用し、すべてのパスがリテラルになるまでループします。

問題は、ループで処理/修正されていないパスをコンソールに返すようにしたいのです。'../test4'(リテラルパス)ので無視してループが完了したら

は、ここで私は、デモの目的のためにいくつかのテストデータで、これまで持っているものです。

function fixPaths(substitutionsArray, pathArray) { 
 
    var fixedPaths = []; 
 

 
    pathArray.forEach(function (path, index, array) { 
 
     console.log('processing line ' + (index + 1) + '... ' + path); 
 
     Object.keys(substitutionsArray).forEach(function (placeholder) { 
 
       var substitution = substitutionsArray[placeholder]; 
 

 
       var fixPath = path.replace(placeholder, substitution); 
 

 
       if (fixPath == path) { 
 
       console.log('No replacement has been found in path ' + path + ' for placeholder ' + placeholder); 
 

 
       } else { 
 
        console.log('Replacement found in path ' + path + ' for placeholder ' + placeholder + ' resulting in ' + fixPath);      
 

 
         fixedPaths.push(fixPath); 
 
       } 
 
      } 
 
     ) 
 
    }); 
 
    console.log(fixedPaths); 
 
    return fixedPaths; 
 
} 
 

 
var subs = { 
 
    "@[email protected]": "/test1", 
 
    "@[email protected]": "/test2", 
 
    "@[email protected]": "/test3", 
 
    "@[email protected]": "/components" 
 
}; 
 
var paths = ['@[email protected]/test1', '@[email protected]/test2', '@[email protected]/test3', '../test4', '../../test5']; 
 

 
result = fixPaths(subs, paths); 
 

 
console.log(result); 
 

 
return;

これを達成するための最善の方法上の任意の提案?

非常に高く評価されています。 - Ben

答えて

0

コンソールはパスを返すことができません。 Console.logは常にundefinedを返します。必要に応じて、渡した値を返す関数を作成して、次のようにログします。

function log(){ console.log.apply(console 、引数)あなたはit..youに渡す引数を返します 戻り引数 }

引数についての詳細を読むことができるが、ここでオブジェクト:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments

関連する問題