PDF Javascript中的字符串到二维数组

PDF Javascript中的字符串到二维数组,javascript,arrays,string,pdf,Javascript,Arrays,String,Pdf,我包括AIRPORTS.txt文件链接如下,它作为附件嵌入在我的PDF文件中 我使用下面的代码使我的数据看起来更像下面的代码 // Get the file stream object of the embedded file var oFile = this.getDataObjectContents("AIRPORTS.txt"); // Convert to a file stream var myData = util.stringFromStream(oFile, "utf-8");

我包括AIRPORTS.txt文件链接如下,它作为附件嵌入在我的PDF文件中

我使用下面的代码使我的数据看起来更像下面的代码

// Get the file stream object of the embedded file
var oFile = this.getDataObjectContents("AIRPORTS.txt");
// Convert to a file stream
var myData = util.stringFromStream(oFile, "utf-8");
ADL ADELAIDE, AU
AMS AMSTERDAM, NL
ATL ATLANTA, GA
BJS BEIJING, CN
BKK BANGKOK, TH
BLQ BOLOGNA, IT
BNE BRISBANE, AU
BOS BOSTON, MA
BWI BALTIMORE, MD
BWN BRUNEI, BN
CAN GUANGZHOU, CN
CLE CLEVELAND, OH
CLT CHARLOTTE, NC
CMH COLUMBUS, OH
CPH COPENHAGEN, DK
CPT CAPE TOWN, ZA
DCA WASHINGTON, DC
DEL DELHI, IN
DEN DENVER, CO
DFW FORT WORTH, TX
DLC DALIAN, CN
DRS DRESDEN, DE
DTW DETROIT, MI
EWR NEWARK, NJ
FLL FT. LAUDERDALE
FMO MUNSTER, DE
FRA FRANKFURT, DE
GUM GUAM, GU
HAM HAMBURG, DE
HGH HANGZHOU, CN
HKG HONG KONG, HK
HND HANEDA, JP
HNL HONOLULU, HI
IAD WASHINGTON, DC
IAH HOUSTON, TX
ICN INCHEON, KR
JED JEDDAH, SA
JFK NEW YORK, NY
KEF REYKJAVIK, IS
KUL KUALA LUMPUR,MY
LAS LAS VEGAS, NV
LAX LOS ANGELES , CA
LCK COLUMBUS, OH
LGA NEW YORK, NY
LHE LAHORE, PK
LHR LONDON, UK
LIS LISBON, PT
MCO ORLANDO, FL
MDW CHICAGO, IL
MEM MEMPHIS, TN
MIA MIAMI, FL
MNL MANILA, PH
MSP MINNEAPOLIS, MN
MSY NEW ORLEANS, LA
MUC MUNICH, DE
MXP MILAN, IT
NAN NADI, FJ
NRT NARITA, JP
OAK OAKLAND, CA
ORD CHICAGO, IL
PDX PORTLAND, OR
PEK BEIJING, CN
PHL PHILADELPHIA,PA
PHX PHOENIX, AZ
PIT PITTSBURGH, PA
PVG SHANGHAI, CN
RGN YANGON, MM
RUH RIYADH, SA
SAN SAN DIEGO, CA
SAT SAN ANTONIO, TX
SEA SEATTLE, WA
SFO SAN FRANCISCO
SGN HOCHIMINH CITY
SIN SINGAPORE, SG
STL ST. LOUIS, MO
SZX SHENZHEN, CN
TPA TAMPA, FL
TPE TAIPEI, TW
YUL MONTREAL, CA
YVR VANCOUVER, CA
YYZ TORONTO, CA
我认为myData是一个由制表符和换行符组成的字符串。如果我错了,请纠正我。这里显示不正确,但上面的下拉框链接应该显示正确的格式,应该是“ADL”,然后是选项卡,然后是“ADELAIDE,AU”,然后是新行,然后是“AMS”,然后是选项卡,然后是“AMSTERDAM,NL”,依此类推。下面的屏幕截图

// Get the file stream object of the embedded file
var oFile = this.getDataObjectContents("AIRPORTS.txt");
// Convert to a file stream
var myData = util.stringFromStream(oFile, "utf-8");
ADL ADELAIDE, AU
AMS AMSTERDAM, NL
ATL ATLANTA, GA
BJS BEIJING, CN
BKK BANGKOK, TH
BLQ BOLOGNA, IT
BNE BRISBANE, AU
BOS BOSTON, MA
BWI BALTIMORE, MD
BWN BRUNEI, BN
CAN GUANGZHOU, CN
CLE CLEVELAND, OH
CLT CHARLOTTE, NC
CMH COLUMBUS, OH
CPH COPENHAGEN, DK
CPT CAPE TOWN, ZA
DCA WASHINGTON, DC
DEL DELHI, IN
DEN DENVER, CO
DFW FORT WORTH, TX
DLC DALIAN, CN
DRS DRESDEN, DE
DTW DETROIT, MI
EWR NEWARK, NJ
FLL FT. LAUDERDALE
FMO MUNSTER, DE
FRA FRANKFURT, DE
GUM GUAM, GU
HAM HAMBURG, DE
HGH HANGZHOU, CN
HKG HONG KONG, HK
HND HANEDA, JP
HNL HONOLULU, HI
IAD WASHINGTON, DC
IAH HOUSTON, TX
ICN INCHEON, KR
JED JEDDAH, SA
JFK NEW YORK, NY
KEF REYKJAVIK, IS
KUL KUALA LUMPUR,MY
LAS LAS VEGAS, NV
LAX LOS ANGELES , CA
LCK COLUMBUS, OH
LGA NEW YORK, NY
LHE LAHORE, PK
LHR LONDON, UK
LIS LISBON, PT
MCO ORLANDO, FL
MDW CHICAGO, IL
MEM MEMPHIS, TN
MIA MIAMI, FL
MNL MANILA, PH
MSP MINNEAPOLIS, MN
MSY NEW ORLEANS, LA
MUC MUNICH, DE
MXP MILAN, IT
NAN NADI, FJ
NRT NARITA, JP
OAK OAKLAND, CA
ORD CHICAGO, IL
PDX PORTLAND, OR
PEK BEIJING, CN
PHL PHILADELPHIA,PA
PHX PHOENIX, AZ
PIT PITTSBURGH, PA
PVG SHANGHAI, CN
RGN YANGON, MM
RUH RIYADH, SA
SAN SAN DIEGO, CA
SAT SAN ANTONIO, TX
SEA SEATTLE, WA
SFO SAN FRANCISCO
SGN HOCHIMINH CITY
SIN SINGAPORE, SG
STL ST. LOUIS, MO
SZX SHENZHEN, CN
TPA TAMPA, FL
TPE TAIPEI, TW
YUL MONTREAL, CA
YVR VANCOUVER, CA
YYZ TORONTO, CA
txt文件截图 PDF控制台屏幕截图

我的目标是将myData转换为二维数组,如下所示。我是否先通过换行将它们“拆分”为一维数组,然后以某种方式将一维数组“拆分”为二维数组?正确的思维方式是什么?我应该看什么代码示例?感谢您的帮助。先谢谢你

希望生成此二维数组

var myArray = [
  ["ADL", "ADELAIDE, AU"],
  ["AMS", "AMSTERDAM, NL"],
  ["ATL", "ATLANTA, GA"]
];
诚恳


Alex

您可以首先在
\n
上进行拆分,然后映射并使用match匹配第一个单词,后跟空格和行的其余部分

let str=`ADL ADELAIDE,AU
阿姆斯特丹AMS,NL
亚特兰大,佐治亚州
北京,中国
曼谷,泰国
博洛尼亚BLQ酒店
澳大利亚布里斯班
波士顿,马萨诸塞州
马里兰州巴尔的摩BWI
BWN文莱,BN
中国广州
克利夫兰,哦
北卡罗来纳州夏洛特市CLT
`
设op=str.split('\n').map(e=>e.match(/^\w++\s |[\w\w]+$/g))

console.log(op)
您可以首先在
\n
上进行拆分,然后映射并使用match匹配第一个单词,后跟空格和行的其余部分

let str=`ADL ADELAIDE,AU
阿姆斯特丹AMS,NL
亚特兰大,佐治亚州
北京,中国
曼谷,泰国
博洛尼亚BLQ酒店
澳大利亚布里斯班
波士顿,马萨诸塞州
马里兰州巴尔的摩BWI
BWN文莱,BN
中国广州
克利夫兰,哦
北卡罗来纳州夏洛特市CLT
`
设op=str.split('\n').map(e=>e.match(/^\w++\s |[\w\w]+$/g))

console.log(op)
\n
拆分第一个数组,然后映射生成的数组并按
\t
拆分每个数组:

const result = str.split("\n").map(e => e.split("\t"));
const str=`ADL阿德莱德,澳大利亚
阿姆斯特丹AMS,NL
亚特兰大,佐治亚州
北京,中国
曼谷,泰国
博洛尼亚BLQ酒店
澳大利亚布里斯班
波士顿,马萨诸塞州
马里兰州巴尔的摩BWI
BWN文莱,BN
中国广州
克利夫兰,哦
北卡罗来纳州夏洛特市CLT
哥伦布,哦
丹麦哥本哈根
南非开普敦CPT
华盛顿特区DCA
德里
丹佛市
德克萨斯州沃思堡DFW酒店
大连,中国
德累斯顿博士
密歇根州底特律DTW酒店
新泽西州纽瓦克市EWR
劳德代尔堡酒店
蒙斯特,德国
法兰克福联邦铁路局
古阿姆胶
汉堡火腿
HGH中国杭州
HK香港
HND羽田,JP
火奴鲁鲁,你好
IAD华盛顿特区
德克萨斯州休斯顿
ICN韩国仁川
吉达,南非
纽约州纽约市肯尼迪机场
凯夫雷克雅未克,是吗
KUL吉隆坡,我的朋友
内华达州拉斯维加斯
洛杉矶洛杉矶洛杉矶,加利福尼亚州
哦,哥伦布
纽约州纽约市LGA
拉合尔,PK
伦敦,英国
里斯本,PT
佛罗里达州奥兰多市MCO
伊利诺伊州芝加哥MDW酒店
孟菲斯,田纳西州
佛罗里达州迈阿密
马尼拉MNL酒店
明尼苏达州明尼阿波利斯市MSP
密歇根州立大学新奥尔良分校,洛杉矶
慕尼黑大学
MXP米兰,它
南岸
NRT成田,JP
奥克奥克兰,加利福尼亚州
伊利诺伊州芝加哥奥德酒店
波特兰,或
北京
宾夕法尼亚州费城PHL
亚利桑那州凤凰城
宾夕法尼亚州匹兹堡比特
中国上海
仰光RGN,MM
南非利雅得鲁
加利福尼亚州圣地亚哥
德克萨斯州圣安东尼奥SAT
西澳州西雅图市
旧金山旧金山
SGN胡志明市
新加坡政府秘书长
密苏里州圣路易斯大街
深圳,中国
佛罗里达州坦帕市TPA
台北TPE
尤尔蒙特利尔,加利福尼亚州
伊夫温哥华,加利福尼亚州
YYZ多伦多,加利福尼亚州`
const result=str.split(“\n”).map(e=>e.split(“\t”);

控制台日志(结果)
\n
拆分第一个数组,然后映射结果数组并按
\t
拆分每个数组:

const result = str.split("\n").map(e => e.split("\t"));
const str=`ADL阿德莱德,澳大利亚
阿姆斯特丹AMS,NL
亚特兰大,佐治亚州
北京,中国
曼谷,泰国
博洛尼亚BLQ酒店
澳大利亚布里斯班
波士顿,马萨诸塞州
马里兰州巴尔的摩BWI
BWN文莱,BN
中国广州
克利夫兰,哦
北卡罗来纳州夏洛特市CLT
哥伦布,哦
丹麦哥本哈根
南非开普敦CPT
华盛顿特区DCA
德里
丹佛市
德克萨斯州沃思堡DFW酒店
大连,中国
德累斯顿博士
密歇根州底特律DTW酒店
新泽西州纽瓦克市EWR
劳德代尔堡酒店
蒙斯特,德国
法兰克福联邦铁路局
古阿姆胶
汉堡火腿
HGH中国杭州
HK香港
HND羽田,JP
火奴鲁鲁,你好
IAD华盛顿特区
德克萨斯州休斯顿
ICN韩国仁川
吉达,南非
纽约州纽约市肯尼迪机场
凯夫雷克雅未克,是吗
KUL吉隆坡,我的朋友
内华达州拉斯维加斯
洛杉矶洛杉矶洛杉矶,加利福尼亚州
哦,哥伦布
纽约州纽约市LGA
拉合尔,PK
伦敦,英国
里斯本,PT
佛罗里达州奥兰多市MCO
伊利诺伊州芝加哥MDW酒店
孟菲斯,田纳西州
佛罗里达州迈阿密
马尼拉MNL酒店
明尼苏达州明尼阿波利斯市MSP
密歇根州立大学新奥尔良分校,洛杉矶
慕尼黑大学
MXP米兰,它
南岸
NRT成田,JP
奥克奥克兰,加利福尼亚州
伊利诺伊州芝加哥奥德酒店
波特兰,或
北京
宾夕法尼亚州费城PHL
亚利桑那州凤凰城
宾夕法尼亚州匹兹堡比特
中国上海
仰光RGN,MM
南非利雅得鲁
加利福尼亚州圣地亚哥
德克萨斯州圣安东尼奥SAT
西澳州西雅图市
旧金山旧金山
SGN胡志明市
新加坡政府秘书长
密苏里州圣路易斯大街
深圳,中国
佛罗里达州坦帕市TPA
台北TPE
尤尔蒙特利尔,加利福尼亚州
伊夫温哥华,加利福尼亚州
YYZ多伦多,加利福尼亚州`
const result=str.split(“\n”).map(e=>e.split(“\t”);

控制台日志(结果)
正如您所提到的,
Array.map()
在您的环境中不可用的可能性,您可以尝试一个简单的
for
循环来实现map提供的相同功能

示例:

let input=`ADL阿德莱德,澳大利亚
阿姆斯特丹AMS,NL
亚特兰大,佐治亚州;
设res=input.split(“\n”);
console.log(“步骤1)被\\n:,res)拆分;
for(设i=0;i
.as控制台{背景色:黑色!重要;颜色:石灰;}

.as console wrapper{max height:100%!important;top:0;}
正如您所提到的,
Array.map()
可能在您的环境中不可用,您可以尝试一个简单的
for
循环,以接近map提供的相同功能

示例:

let input=`ADL阿德莱德,澳大利亚
是