【问题标题】:Cannot iterate over a key/value array in jQuery无法遍历 jQuery 中的键/值数组
【发布时间】:2016-10-11 10:14:10
【问题描述】:

我有一个如下形式的数组:

[
   849D7F716C80E6FBA1B6C984AC671CFA6BA19BEF: Array[7],
   13C29365E98124E760AE090047358D2C76C82D4C: Array[7],
   1165565F4A1EDB8DD07E617D56F73BF81F9CB184: Array[7], 
   F12A4A88F71EC50751D3E11F4AA331699CDED76: Array[8]
]

子数组是对象:

3F12A4A88F71EC50751D3E11F4AA331699CDED76: Array[8] >
  0: Object
  1: Object
  2: Object
  3: Object
  4: Object
  5: Object
  6: Object
  7: Object

我可以在我的控制台上看到它

console.log(arr);

但如果我这样做:

$.each(arr, function (key, value)
{
    console.log(key);
    console.log(value);
});

什么都没有发生。为什么?!它应该打印如下内容:

> 849D7F716C80E6FBA1B6C984AC671CFA6BA19BEF
> Array[7]
> 13C29365E98124E760AE090047358D2C76C82D4C
> Array[7]
> 1165565F4A1EDB8DD07E617D56F73BF81F9CB184
> Array[7]
> F12A4A88F71EC50751D3E11F4AA331699CDED76
> Array[8]

【问题讨论】:

  • 您的每个函数都没有任何实例化的值,名为 ab
  • a 和 b 不存在...您实际上是在记录不存在的变量。试试console.log(key)console.log(value)
  • 数组是如何填充的?硬编码值?
  • 什么都没有发生?你确定吗?您的控制台中没有错误或任何错误?
  • @Jamiec 哈哈哈......!

标签: javascript jquery iteration each


【解决方案1】:

这个:

[
   849D7F716C80E6FBA1B6C984AC671CFA6BA19BEF: Array[7],
   13C29365E98124E760AE090047358D2C76C82D4C: Array[7],
   1165565F4A1EDB8DD07E617D56F73BF81F9CB184: Array[7], 
   F12A4A88F71EC50751D3E11F4AA331699CDED76: Array[8]
]

不是数组初始化的有效语法。数组元素没有键/值,它们只有值 - 也许您打算创建一个对象文字:

{
   849D7F716C80E6FBA1B6C984AC671CFA6BA19BEF: Array[7],
   13C29365E98124E760AE090047358D2C76C82D4C: Array[7],
   1165565F4A1EDB8DD07E617D56F73BF81F9CB184: Array[7], 
   F12A4A88F71EC50751D3E11F4AA331699CDED76: Array[8]
}

一旦你这样做,你的代码就可以正常工作:https://jsfiddle.net/veky1dk5/

【讨论】:

    【解决方案2】:

    把它做成json数组,然后用每个like

    [ {  '849D7F716C80E6FBA1B6C984AC671CFA6BA19BEF': Array[7],
    
    
    '13C29365E98124E760AE090047358D2C76C82D4C': Array[7],
    
    
    '1165565F4A1EDB8DD07E617D56F73BF81F9CB184': Array[7], 
    
    
    'F12A4A88F71EC50751D3E11F4AA331699CDED76': Array[8] }] 
    

    【讨论】:

      【解决方案3】:

      你为什么在控制台中使用 a 和 b。在打印控制台中使用键和值:

      $.each(arr, function (key, value)
      {
          console.log(key);
          console.log(value);
      });
      

      【讨论】:

      • 抱歉打错了! 'T_T
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-07
      相关资源
      最近更新 更多