Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试使用.substring()时未定义的值_Javascript_Arrays_Substring_Jsdom - Fatal编程技术网

Javascript 尝试使用.substring()时未定义的值

Javascript 尝试使用.substring()时未定义的值,javascript,arrays,substring,jsdom,Javascript,Arrays,Substring,Jsdom,我试图检查名为test[]的数组中的值“Dep”,并将其值添加到另一个数组arrayDep 它之所以失败,是因为它说该位置的数组未定义,但在控制台日志中可以看到数组中充满了项 代码: jsdom.env({ url:“http://www.camara.leg.br/internet/deputado/Dep_Lista.asp?Legislatura=55&Partido=QQ&SX=QQ&Todos=None&UF=QQ&condic=QQ&forma=lista&nome=&ordem=n

我试图检查名为
test[]
的数组中的值
“Dep”
,并将其值添加到另一个数组
arrayDep

它之所以失败,是因为它说该位置的数组
未定义
,但在控制台日志中可以看到数组中充满了项

代码:

jsdom.env({
url:“http://www.camara.leg.br/internet/deputado/Dep_Lista.asp?Legislatura=55&Partido=QQ&SX=QQ&Todos=None&UF=QQ&condic=QQ&forma=lista&nome=&ordem=nome&origem=None",
脚本:[”http://code.jquery.com/jquery.js"],
完成:函数(错误,窗口){
var检验=[];
var arrayDep=[];
var值;
var substring=“Dep_Detalhe.asp”;
var$=窗口。$;
$('a')。每个(函数(){
test.push($(this.attr('href'));
});
控制台日志(测试);
//内部控制台日志:
//“Dep_Detalhe.asp?id=5830400”,
//“mailto:dep。givaldocarimbao@camara.leg.br',
//“Dep_Detalhe.asp?id=5830706”,
//“mailto:dep。givaldovieira@camara.leg.br',
//“Dep_Detalhe.asp?id=5830397”,
//“mailto:dep。glauberbraga@camara.leg.br', ...
对于(变量i=0;i
这很管用,伙计们,感谢大家,我的数组中有未定义的组件,但最好的提示是使用节点检查器,这样可以很容易地验证我的大数组中是否有未定义的组件。

如果一个或多个
元素没有“href”属性,在数组的某些元素中将有
未定义的
。@Pointy,但它们不会出现在
console.log(test)之后的日志中
?@Pointy我的数组中只有href itens,我只推hrefs:test.push($(this.attr('href'));设置断点并单步执行代码,而不是使用
console.log
。我有时观察到
console.log
记录了不准确的值。我发现我的数组中没有定义!!很可能是这样,我会尽量避免的
jsdom.env({
    url: "http://www.camara.leg.br/internet/deputado/Dep_Lista.asp?Legislatura=55&Partido=QQ&SX=QQ&Todos=None&UF=QQ&condic=QQ&forma=lista&nome=&ordem=nome&origem=None",
    scripts: ["http://code.jquery.com/jquery.js"],
    done: function (errors, window) {
        var test = [];
        var arrayDep = [];
        var value;
        var substring = "Dep_Detalhe.asp";
        var $ = window.$;
        $('a').each(function () {
            test.push($(this).attr('href'));
        });

        console.log(test);
        // inside console log:
        // 'Dep_Detalhe.asp?id=5830400',
        // 'mailto:dep.givaldocarimbao@camara.leg.br',
        // 'Dep_Detalhe.asp?id=5830706',
        // 'mailto:dep.givaldovieira@camara.leg.br',
        // 'Dep_Detalhe.asp?id=5830397',
        // 'mailto:dep.glauberbraga@camara.leg.br', ...

        for (var i = 0; i < test.length; i++) {
            value = test[i];
            if (value.substring(0,3) === "Dep_") { 
                // error occurs here it says:   
                // TypeError: Cannot read property 'substring' of undefined
                arrayDep.push(test[i]);
            }
        }
    }
});