数组第一个字符被覆盖

时间:2018-05-31 19:09:22

标签: javascript arrays

我正在尝试将一个简单的字符附加到数组元素,但是如果我使用fs通过文件初始化它,它似乎只能在数组的最后一个元素上正常工作。

var fs = require('fs');
var array = fs.readFileSync('countrieslist.js').toString().split("\n");
for(i in array) {
    array[i] = array[i] + ",";
    console.log (array[i]);
}
(修剪)输出:

,irgin Islands (UK)
,irgin Islands (US)
,emen
,ambia
Zimbabwe,

同时

var fs = require('fs');
var array = ["Martinique", "Mauritania","Mauritius", "Mayotte", "Mexico"];

for(i in array) {
    array[i] = array[i] + ",";
    console.log (array[i]);
}

正确添加','...这似乎意味着我的问题与数组元素的初始化有关?我很困惑,想法?

修改的 这是countrieslist.js的内容:

Afghanistan
Albania
Algeria
Andorra
Angola
Anguilla
Antigua & Barbuda
Argentina
Armenia
Australia
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin
Bermuda
Bhutan
Bolivia
Bosnia & Herzegovina
Botswana
Brazil
Brunei Darussalam
Bulgaria
Burkina Faso
Myanmar/Burma
Burundi
Cambodia
Cameroon
Canada
Cape Verde
Cayman Islands
Central African Republic
Chad
Chile
China
Colombia
Comoros
Congo
Costa Rica
Croatia
Cuba
Cyprus
Czech Republic
Democratic Republic of the Congo
Denmark
Djibouti
Dominica
Dominican Republic
Ecuador
Egypt
El Salvador
Equatorial Guinea
Eritrea
Estonia
Ethiopia
Fiji
Finland
France
French Guiana
Gabon
Gambia
Georgia
Germany
Ghana
Great Britain
Greece
Grenada
Guadeloupe
Guatemala
Guinea
Guinea-Bissau
Guyana
Haiti
Honduras
Hungary
Iceland
India
Indonesia
Iran
Iraq
Israel and the Occupied Territories
Italy
Ivory Coast (Cote d'Ivoire)
Jamaica
Japan
Jordan
Kazakhstan
Kenya
Kosovo
Kuwait
Kyrgyz Republic (Kyrgyzstan)
Laos
Latvia
Lebanon
Lesotho
Liberia
Libya
Liechtenstein
Lithuania
Luxembourg
Republic of Macedonia
Madagascar
Malawi
Malaysia
Maldives
Mali
Malta
Martinique
Mauritania
Mauritius
Mayotte
Mexico
Moldova, Republic of
Monaco
Mongolia
Montenegro
Montserrat
Morocco
Mozambique
Namibia
Nepal
Netherlands
New Zealand
Nicaragua
Niger
Nigeria
Korea, Democratic Republic of (North Korea)
Norway
Oman
Pacific Islands
Pakistan
Panama
Papua New Guinea
Paraguay
Peru
Philippines
Poland
Portugal
Puerto Rico
Qatar
Reunion
Romania
Russian Federation
Rwanda
Saint Kitts and Nevis
Saint Lucia
Saint Vincent's & Grenadines
Samoa
Sao Tome and Principe
Saudi Arabia
Senegal
Serbia
Seychelles
Sierra Leone
Singapore
Slovak Republic (Slovakia)
Slovenia
Solomon Islands
Somalia
South Africa
Korea, Republic of (South Korea)
South Sudan
Spain
Sri Lanka
Sudan
Suriname
Swaziland
Sweden
Switzerland
Syria
Tajikistan
Tanzania
Thailand
Timor Leste
Togo
Trinidad & Tobago
Tunisia
Turkey
Turkmenistan
Turks & Caicos Islands
Uganda
Ukraine
United Arab Emirates
United States of America (USA)
Uruguay
Uzbekistan
Venezuela
Vietnam
Virgin Islands (UK)
Virgin Islands (US)
Yemen
Zambia
Zimbabwe

如果我尝试直接打印数组内容(console.log(array)

打印:

[ 'Afghanistan\r',
  'Albania\r',
  'Algeria\r',
  'Andorra\r',
  'Angola\r',
  'Anguilla\r',
  'Antigua & Barbuda\r',
  'Argentina\r',
  'Armenia\r',
  'Australia\r',
  'Austria\r',
  'Azerbaijan\r',
  'Bahamas\r',
  'Bahrain\r',
  'Bangladesh\r',
  'Barbados\r',
  'Belarus\r',
  'Belgium\r',
  'Belize\r',
  'Benin\r',
  'Bermuda\r',
  'Bhutan\r',
  'Bolivia\r',
  'Bosnia & Herzegovina\r',
  'Botswana\r',
  'Brazil\r',
  'Brunei Darussalam\r',
  'Bulgaria\r',
  'Burkina Faso\r',
  'Myanmar/Burma\r',
  'Burundi\r',
  'Cambodia\r',
  'Cameroon\r',
  'Canada\r',
  'Cape Verde\r',
  'Cayman Islands\r',
  'Central African Republic\r',
  'Chad\r',
  'Chile\r',
  'China\r',
  'Colombia\r',
  'Comoros\r',
  'Congo\r',
  'Costa Rica\r',
  'Croatia\r',
  'Cuba\r',
  'Cyprus\r',
  'Czech Republic\r',
  'Democratic Republic of the Congo\r',
  'Denmark\r',
  'Djibouti\r',
  'Dominica\r',
  'Dominican Republic\r',
  'Ecuador\r',
  'Egypt\r',
  'El Salvador\r',
  'Equatorial Guinea\r',
  'Eritrea\r',
  'Estonia\r',
  'Ethiopia\r',
  'Fiji\r',
  'Finland\r',
  'France\r',
  'French Guiana\r',
  'Gabon\r',
  'Gambia\r',
  'Georgia\r',
  'Germany\r',
  'Ghana\r',
  'Great Britain\r',
  'Greece\r',
  'Grenada\r',
  'Guadeloupe\r',
  'Guatemala\r',
  'Guinea\r',
  'Guinea-Bissau\r',
  'Guyana\r',
  'Haiti\r',
  'Honduras\r',
  'Hungary\r',
  'Iceland\r',
  'India\r',
  'Indonesia\r',
  'Iran\r',
  'Iraq\r',
  'Israel and the Occupied Territories\r',
  'Italy\r',
  'Ivory Coast (Cote d\'Ivoire)\r',
  'Jamaica\r',
  'Japan\r',
  'Jordan\r',
  'Kazakhstan\r',
  'Kenya\r',
  'Kosovo\r',
  'Kuwait\r',
  'Kyrgyz Republic (Kyrgyzstan)\r',
  'Laos\r',
  'Latvia\r',
  'Lebanon\r',
  'Lesotho\r',
  ... 98 more items ]

1 个答案:

答案 0 :(得分:0)

Windows对新行使用\r\n,因此您可以尝试修剪值:

var array = fs.readFileSync('countrieslist.js').toString().split("\n").map(x=>x.trim());