nas*_*100 0 javascript arrays performance
我正在使用存储在S3上的一些xml文件.我使用Node中的xml2js模块来解析xmls,然后我提取其中包含.jpg的字符串.我正在使用过滤器方法,然后尝试使用我自己的for循环但是没有任何时间关闭.有没有更快的方法来编写代码的这一部分,或者这是完成它的最快方法.任何帮助赞赏.
使用过滤方法:
//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);
Run Code Online (Sandbox Code Playgroud)
使用for循环:
//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);
Run Code Online (Sandbox Code Playgroud)
使用file.split('"')后,数据如下所示:
[ '{','rstuv',':{','options',':[{','']];
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)var file = JSON.stringify(data); var arrayOfStrings = file.split('"');
不要那样做.如果要搜索数据,请保持结构化.字符串化然后搜索该字符串不仅会给你带来一堆错误(当字符串确实包含引号时),许多数组元素甚至都不是正确的字符串,并且几乎没有任何改进,只需将原始XML文件作为文本读取并直接搜索.
相反,只需通过data对象迭代(或必要时递归)(有关详细信息,请参阅Access/process(嵌套)对象,数组或JSON),并在您期望的位置过滤字符串(和属性名称?).这会快得多.
| 归档时间: |
|
| 查看次数: |
659 次 |
| 最近记录: |