0

Javascript と Split で配列に情報を入れるのに苦労しています。

var LigneTab= new Array(3,7); //4 Lines, 7 Items
var reg=new RegExp(" +", "g");

Ligne = ("55062 5453457.4676 236746.6682 472.4027 POA 2012-08-14 GM33P086"); //First Line
LigneTab[0]=Ligne.split(reg); //Split the line in 7 items and place it in line 0
UltraEdit.messageBox(LigneTab[0,4]]); // Debug msgbox from UltraEdit to show the item 4 'POA'
4

3 に答える 3

1

JavaScript では、これはそれほど複雑である必要はありません。

var Ligne = "55062 5453457.4676 236746.6682 472.4027 POA 2012-08-14 GM33P086"
   ,LigneTab = [Ligne.split(/\s+/)];
   // now LigneTab[0] is:
   // ["55062", "5453457.4676", "236746.6682", "472.4027", ..., "GM33P086"]

あるいは:

var Ligne = "55062 5453457.4676 236746.6682 472.4027 POA 2012-08-14 GM33P086"
             .split(/\s+/);
// Ligne[0]:
// ["55062", "5453457.4676", "236746.6682", "472.4027", ..., "GM33P086"]
于 2012-08-28T18:21:56.300 に答える
0

あなたが投稿したコードを考えると、2 次元配列が必要な理由がわかりません。ただし、本当に必要な場合は、作成してアクセスする方法の 1 つを試してみてください。

var LigneTab = []; // one-dimensional for now
var reg=new RegExp(" +", "g");
var Ligne = "55062 5453457.4676 236746.6682 472.4027 POA 2012-08-14 GM33P086"; 
LigneTab[0] = Ligne.split(reg); 
// Now LigneTab is two-dimensional. 
// LigneTab[0] contains another array with 7 items
UltraEdit.messageBox(LigneTab[0][4]]); 
于 2012-08-28T18:22:29.137 に答える
0

まず、配列を として初期化し、[3, 7]次に 0 番目の値を実際に必要なネストされた配列に置き換えます。

LigneTab[0]=Ligne.split(reg); //Split the line in 7 items and place it in line 0

LigneTab実際にはそう[["55062","5453457.4676","236746.6682","472.4027","POA","2012-08-14","GM33P086"], 7]であり、インデックス 4 には値がありません。

第 2 に、要素が 4 つを超える場合はLigneTab[0,4]あまり意味がありません。

0, 4

と評価される4ので、単に と書くこともできますLigneTab[4]

おそらくこれが必要です:

var LigneTab = Ligne.split(/\s+/);
UltraEdit.messageBox(LigneTab[4]]); // Debug msgbox from UltraEdit to show the item 4 'POA'

または、ネストされたリストとして使用することを意図していた可能性があります。その場合は、次のようにします。

var LigneTab[0] = Ligne.split(/\s+/);
UltraEdit.messageBox(LigneTab[0][4]);
于 2012-08-28T18:19:58.960 に答える