javascript - 用于映射对象数组的数组元素的函数

标签 javascript arrays

我在获取从另一个数组映射数组元素的函数时遇到问题。我有三个带有城市名称的州数组和另一个 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/

相关文章:

ruby - 如何拆分数组?

c - 丢失数组指针值?

javascript - 从数组中删除一个随机对象并返回它

javascript - 将弹出子菜单项添加到子菜单中

javascript - 什么对性能更好 : event for each element or one event with delegation?

javascript - 如何将 JavaScript 事件监听器预添加到使用 Mustache 生成的元素?

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

javascript - 在 Jupyter/iPython notebook 中以图形方式选择几何对象

javascript - 如何使用 Javascript 单击 anchor 标记(没有 ID 或类)

c - 当初始值设定项多于数组大小时的行为是什么?