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

首先,将数组初始化为[3, 7],然后将第零个值替换为实际需要的数组,嵌套:

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 没有任何价值。

其次,如果它确实有 > 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 回答
0

考虑到您发布的代码,我不明白为什么需要二维数组。但是如果你真的需要一个,你在这里尝试的是创建和访问它的可能方法之一:

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 回答