我在获取从另一个数组映射数组元素的函数时遇到问题。我有三个带有城市名称的州数组和另一个 zip_codes 数组,其中包含 [{city: "City 1", zip: "11111"},{city: "City 2", 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)
最佳答案
问题是您没有按应有的方式使用 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)
关于javascript - 用于映射对象数组的数组元素的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30146315/