私はS3に格納されているいくつかのXMLファイルを扱っています。私はNodeでxml2jsモジュールを使ってXMLを解析し、その中に.jpgを持つ文字列を抽出します。私はフィルタメソッドを使用していたし、自分自身のforループを使用してみましたが、それはいつでも剃ることはありませんでした。コードのこのセクションを書くより速い方法があるか、これを行うための最も速い方法です。どんな助けもありがたい。JavaScriptで文字列の配列をフィルタする最速の方法
使用してフィルタ方式:
//this took 52393ms
var file = JSON.stringify(data);
var arrayOfStrings = file.split('"');
var images = arrayOfStrings.filter(function(str) {
return str.indexOf('.jpg') !== -1;
});
resolve(images);
forループを使用して:私は( '"')file.splitを使用した後
//this took 52681ms
var file = JSON.stringify(data);
var arrayOfStrings = file.split('"');
var images =[];
for(let i = 0; i < arrayOfStrings.length; i++) {
if(arrayOfStrings[i].indexOf('.jpg') !== -1) {
images.push(arrayOfStrings[i]);
}
}
resolve(images);
データは、次のようになります。
[ '{','rstuv',':{','options',':[{','![alt](CKrgUgiYMflaWnsGZ009.jpg)']];
'let'の代わりに' var'を使って 'for'を試してください。 'let'は繰り返しごとに新しい変数を作成します。 – Rajesh
あなたの初期データの例を教えてください。 – Foker
プロファイラを使用して、時間の正確な場所を確認します。実際の原因であるJSONシリアライゼーションになる可能性があります – alex