#javascript #local #activexobject
Вопрос:
Я запускаю скрипт, который считывает файлы в папке моего проекта и помещает их в массив.
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
var objShell = new ActiveXObject("Shell.Application");
var lib;
var fitem1 = [];
var ascFiles = [];
lib = objShell.NameSpace(oDmApp.ActiveProject.Folder);
items = lib.Items();
for (i=0;i<items.Count;i )
{
fitem = items.Item(i);
fitem1.push(fitem);
}
После этого код выбирает те, у которых есть определенное расширение.
var ptendsWith = "pt.asc";
var ptregx = new RegExp(ptendsWith "$");
ptresult = fitem1.filter(function(item){return ptregx.test(item);})
var trendsWith = "tr.asc";
var trregx = new RegExp(trendsWith "$");
var trresult = fitem1.filter(function(item){return trregx.test(item);})
После этого вещи начинают становиться странными, я просто не могу управлять этими двумя массивами, созданными trresult и ptresult. Простая команда ptresult[i].slice(0,-2)
дает мне понять, что объект не поддерживает slice, как будто это не массив.
Я несколько раз тестировал оба массива, и они определенно являются массивами, но я не понимаю, почему я могу ими манипулировать.
Может ли кто-то знать, что происходит?
Комментарии:
1.
ptresult
представляет собой массив.ptresult[i]
является объектом, вероятно, представлением файла с трудно повторяющимися свойствами объекта хоста, такими какptresult[i].Name
2. @ThyagoOliveira : Удалил тег оболочки , потому что вопрос не связан с оболочкой POSIX. Я также не понимаю, почему вы отметили это как местное .