【问题标题】:How do you start looping at a certain key within an object?你如何开始在对象中的某个键处循环?
【发布时间】:2017-08-08 08:36:09
【问题描述】:
$.each( data[0], function( key, value ) {
      console.log( key + ": " + value );
})

我希望循环从这个对象中的某个键开始。我不想 console.log 这个对象中的每一个键和值。

【问题讨论】:

  • 对象键的顺序是任意的,所以这个问题纯属幻想!
  • 键没有顺序,因此从特定键开始是没有意义的。
  • 如果你想跳过一些键,使用ifswitch语句来测试key
  • 哦,好吧,我明白你的意思了。谢谢!

标签: javascript jquery loops object javascript-objects


【解决方案1】:

【讨论】:

    【解决方案2】:

    对象键不会以任何顺序迭代,但如果您想要某些键的值,您可以有条件地使用 console.log:

    var obj = {
      key1: 1,
      key2: 2,
      longerKey: 3,
      anotherLongerKey: 4
    };
    
    keys = Object.keys(obj);
    
    keys.forEach(function(key) {
      if(key.length > 4) {
        console.log(obj[key]);
      }
    });

    【讨论】:

    • 你可以转储循环并直接使用obj.two :)
    • @kuroineko 你是对的。我更改了我的代码示例以更好地使用条件。
    • 现在看起来好多了:)
    【解决方案3】:

    键可以是任何字符串值,不保证for ... in 浏览它们的顺序。 在幕后,键/属性关联使用哈希表,for ... in 将根据哈希函数传播其键的方式循环遍历属性,即完全任意的伪随机重新分区。

    如果您希望以任何顺序(字典顺序或数字顺序)浏览属性,则必须将键提取到一个数组中,然后对该数组进行排序。 然后,您必须通过裁剪键数组或在浏览循环中测试键值来消除不需要的键。

    这听起来对我来说是很多工作,但你肯定有你的理由......

    【讨论】:

      猜你喜欢
      • 2020-09-05
      • 2018-03-06
      • 2021-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-21
      • 1970-01-01
      • 2016-09-07
      相关资源
      最近更新 更多