algorithm组织数组

这是问题:

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

对于这个例子,假设数据字段是ID,首先,最后,电话和电子邮件。 但是,如果用户没有特定字段的值,则完全省略。

所以这里是数组的样子

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] = 

我想循环这个数组,并将每个用户的数据存储在一个数据库中,但是我不知道如何validation我正在存储正确的信息,因为数组中没有模式。 由于Joe没有电话号码,他的电子邮件将被存储为他的电话号码。 这将导致以后的进入被1个索引closures。

任何想法如何去做呢?

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 

这里是伪代码,因为我不知道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 

使用标记化

例:

 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>"); } }