问题在于:
我有一个包含用户信息的数组。每个条目由数组中的空白字段分隔。
对于此示例,我们假设数据字段是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个索引关闭。
有关如何解决此问题的任何想法?
P.S。我正在使用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
答案 0 :(得分: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
答案 1 :(得分: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>");
}
}