有人可以帮助我的代码,这是用python编写的,我想用javascript写它但我遇到了麻烦,我不知道如何。 python代码
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,但是这样做了
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 :(得分:0)
您有从python到js的语法问题。下面是数组如何工作...
如果你在javascript中有一个数组litteral
var cities = [];
然后我们将通过调用push
添加到数组中cities.push('Portland');
...
cities.push('New York');
然后我们可以通过在数组对象上调用forEach来迭代数组。
cities.forEach(function (city, index){
//do work on each city
console.log(city);
});
// Portland
// New York
答案 1 :(得分:0)
一些事情:
.split()
in JS会执行与split
in python不同的操作。要将一行拆分为单词,您需要明确地拆分空白for
循环文件的行。 Python使用迭代器语法从文件中读取,在JavaScript中ajax request加载整个文件,您需要自己将它拆分成行。m[1:]
语法,您需要使用.slice()
method而不是map
method数组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');