2

这是问题所在:

我有一个包含用户信息的数组。每个条目由数组中的空白字段分隔。

对于此示例,假设数据字段是 ID、first、last、phone 和 email。但是,如果用户没有特定字段的值,则将其完全省略。

所以这就是数组的样子

users[0] = 45049345
users[1] = Bob
users[2] = Smith 
users[3] = 789-456-1230
users[4] = bob@gmail.com
users[5] = 
users[6] = 63515987 
users[7] = Joe 
users[6] = Schmoe 
users[8] = joe@gmail.com
users[9] = 

我想循环这个数组并将每个用户的数据存储在数据库中,但是我不知道如何验证我是否在该位置存储了正确的信息,因为数组中没有模式。由于 Joe 没有电话号码,因此他的电子邮件将被存储为他的电话号码。这将导致后续条目被 1 个索引关闭。

关于如何解决这个问题的任何想法?

PS我正在使用node.js

编辑:这是实际数据的示例

021870143-14        
lastName    
firstName           
U   
5/16/1988   
11/6/2008   
A   
11/6/2008 6:0:2 
NF  
245         
MAIN ST.    
101     
NEW YORK    
NY
10002                           
11/4/2008   
34      
SD1 
MUNC1J-036  
MAG1-1  
LEG77   
SENT34  
CONG5   
CNTY                
34-1                
10/27/2008 19:59:53                             
NF  
4

2 回答 2

1

这是伪代码,因为我不知道 javascript。我基于这样一个事实,即我认为 Javascript 有字典/关联数组/哈希表等。

new_user = {}
for i from 0 to arr.length
    if arr[i] = null/Omitted field/nil/None/whatever
        database.add_entry(new_user) // Add finished user table to database
        new_user = {} // Start new dictionary
    else
        field = arr[i]
        if field contains '@'
            new_user.email = field
        else if field contains '-'
            new_user.phone_number = field
        else if is_a_number(field)
            new_user.id = field
        else if new_user has first_name
            new_user.last_name = field
        else
            new_user.first_name = field
于 2013-10-08T05:30:05.837 回答
0

使用标记化..

例子:

users[0] = "45049345,Bob,Smith,789-456-1230,bob@gmail.com";
users[1] = "63515987,Joe,Schmoe,-,joe@gmail.com";

过程:

for (user in users)
{
    for (detail in user)
    {
        document.write (detail + "<br>");
    }
}
于 2013-10-08T07:30:59.630 回答