我无法从另一个数组中获取映射数组元素的函数。我有三个状态数组和城市名称,另一个zip_codes数组包含[{city:" City 1",zip:" 11111"},{city:" City 2& #34;,zip:" 22222"} ...]。所有数组都在城市名称中没有拼写错误。但是,当我运行映射邮政编码的storeState函数时,将城市存储到一个新的"状态"数组,它只是收集了一些城市。
我的代码是否有任何问题导致它跳过某些城市?顺便说一下,我是JavaScript的新手。
function mapZip(city){
for (i = 0; i < zip_codes.length; ++i)
if(zip_codes[i].City == city) return zip_codes[i].zip;
}
var states =[];
function storeState(state,stateLong){
for(i = 0; i < state.length; ++i){
states.push({
state: stateLong,
city: state[i],
zip: mapZip(state[i])
})
}
}
storeState(CO,"Colorado")
storeState(CA,"California")
storeState(ID,"Idaho")
console.log(states)
答案 0 :(得分:0)
问题是你没有使用i索引。 你必须使用 var 。否则它是全局变量。
function mapZip(city){
for (var i = 0; i < zip_codes.length; ++i)
if(zip_codes[i].City == city) return zip_codes[i].zip;
}
var states =[];
function storeState(state,stateLong){
for(var i = 0; i < state.length; ++i){
states.push({
state: stateLong,
city: state[i],
zip: mapZip(state[i])
})
}
}
storeState(CO,"Colorado")
storeState(CA,"California")
storeState(ID,"Idaho")
console.log(states)