2015-02-28 8 views
-1

может кто-нибудь помочь для моего кода, написанного на python, я хочу написать его в javascript, но im в проблеме, я не знаю, как это сделать. питон кодпреобразование кода python в код javascript

cities={} 
for line in open("linnadkaugustega.txt", "r", encoding="UTF-8"): 
    m=line.strip().split() 
    abim=[word.split(":") for word in m[1:]] 
    cities[m[0]]={} 

    for couple in abim: 
     cities[m[0]][couple[0]]=int(couple[1]) 

print(cities); 

и я пытался в JavaScript, но это doesen't работа

function tere(){ 
    console.log("Tere"); 
    $.get('read.txt', function(data) { 
     cities={}; 
     var lines = (data.trim()).split(); 
     abim=[var word.split(":") for word in m[1:]] 
     cities[m[0]]={}; 
     for var couple in abim 
      cities[m[0]][couple[0]]=couple[1]; 
      console.log(cities); 
    }, 'text'); 
} 

tere(); 

может кто-нибудь мне помочь?

ответ

0

У вас есть проблемы с синтаксисом, переводящие из python в js. Вот как работают массивы ...

, если у вас есть litteral массив в JavaScript

var cities = []; 

Тогда мы могли бы добавить в массив, вызвав толчок

cities.push('Portland'); 
... 
cities.push('New York'); 

мы можем перебрать массив вызывая forEach на объекте массива.

cities.forEach(function (city, index){ 
    //do work on each city 
    console.log(city); 
}); 
// Portland 
// New York 
+0

вы можете помочь мне написать мой код правильно? – DELION

0

Несколько вещей:

  • .split() in JS делает что-то другое, чем split in python когда разделитель не дано. Чтобы разделить строку на слова, вам нужно разделить на пробелы явно
  • вам не хватает цикла for по строкам файла. Python использует синтаксис итератора для чтения из файла, в JavaScript ajax request загружает весь файл, и вам нужно разбить его в строках самостоятельно.
  • JavaScript не имеет, что m[1:] синтаксис, вам нужно использовать .slice() method вместо
  • JavaScript не имеет массив/списковых. Вам нужно будет использовать явный цикл или map method массивов
  • Ваш синтаксис цикла слишком пуфонический. В JavaScript for loops нужны скобки и индексная переменная.

Так что это должно сделать (предполагается, вы библиотека Jquery загружается и находит файл):

$.get('read.txt', function(data) { 
    var cities = {}; 
    var lines = data.split("\n"); 
    for (var i=0; i<lines.length; i++) { 
     var line = lines[i]; 
     var m = line.trim().split(/\s+/); 
     var abim = m.slice(1).map(function(word) { 
      return word.split(":"); 
     }); 
     var obj = cities[m[0]] = {}; 
     for (var j=0; j<abim.length; j++) { 
      var couple = abim[j]; 
      obj[couple[0]] = couple[1]; 
     } 
    } 
    console.log(cities); 
}, 'text'); 
Смежные вопросы