Код массива, не принимающий методы в качестве замены, среза

#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. Я также не понимаю, почему вы отметили это как местное .