未捕获的TypeError:无法读取null的属性“1”

时间:2013-07-01 23:00:28

标签: javascript android titanium

我得到一个错误:未捕获的TypeError:无法读取null的属性'1'来源:X.push(check [1]);

问题是什么?

wspolrzedne.value =在textArea中键入的文字:“2.4 5 1 67 15 67”

所以也许问题是因为钛不能安全地用\ n作为新行?

var coordinates = wspolrzedne.value.split( "\n" );
    var X = [];
    var Y = [];


    for( var i = 0; i < coordinates.length; ++i ) {
        var check = coordinates[ i ].match( /^([0-9]+.[0-9]*) ([0-9]+.[0-9]*)$/ ); 

        if( check == false) {
                var zlewspolrzedne = Ti.UI.createAlertDialog({
                title: "Niew?a?ciwe wspó?rz?dne: " + coordinates[ i ],
                buttonNames: ['Popraw'],
                cancel: 0
            });
            zlewspolrzedne.show();
        }

        X.push( check[ 0 ] );
        Y.push( check[ 1 ] );    

    }

1 个答案:

答案 0 :(得分:2)

这是因为textArea并不关心linebreaks,它只是一个简单的空白。因此解决方案是按''进行拆分,然后将其中的每两个连接起来(或者将每对直接提供给检查数组并动态检查其内容)。

编辑:

好的,问题是这一行:

var check = coordinates[ i ].match( /^([0-9]+.[0-9]*) ([0-9]+. [0-9]*)$/ )

它只分配一个值而不是两个。