6

我收到一个错误:未捕获的 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 ] );    

    }
4

1 回答 1

2

这是因为textArea不关心linebreaks,它只是一个简单的空格。所以解决方案是用' '分割,然后将它们中的每一个连接起来(或将每一对直接馈送到检查数组并即时检查它们的内容)。

编辑:

好的,所以问题是这一行:

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

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

于 2013-07-01T23:50:33.093 回答