【问题标题】:javascript looping out specific keyjavascript循环出特定键
【发布时间】:2016-02-24 15:45:13
【问题描述】:

您好,我在 javascript 中有一个数组,其中包含 3 个对象,每个对象都有多个子对象,每个子对象显然都有一个键和值。

我正在尝试循环出某个键的子对象 ID,例如 4,其中值为 true。

我的数组是什么样子的:

myarray

我试过这个方法:(结果是我的ajax调用的结果)

for(var land in result.landen){
    $.each(land, function() {
        $.each(this, function(key, value) {
            console.log(key + value);
        });
    });
}

我收到此错误:

未捕获的 TypeError:无法使用 'in' 运算符在 8 中搜索 'length'

【问题讨论】:

  • 你能否展示一个实际对象的样本而不是它的伪表示。
  • 你能添加一个 jsFiddle 来帮助你吗?
  • 要跳出嵌套循环,如果某个条件为真,您只需执行return false;
  • 我是第一次在 mac 上工作,你能告诉我怎么做吗?
  • 这里没有数组,只有具有属性的对象,所以each 不能工作..

标签: javascript jquery arrays loops


【解决方案1】:

你太深了 1 级。

$.each(result.landen, function(key1, value1) {
    console.log(key1 + value1); 
    $.each(value1, function(key2, value2) {
        console.log(key2 + value2);        // will log "4 true"
    });
});

在我看来,您的对象结构有点奇怪。就个人而言,我宁愿有更明确的键/值。

{ landen :
    [
        {
            id : 8,
            type: 4
            apartements: [ //I don't know what they represent.
                {id : 8}
            ],
            warehouses: []
        }
    ]
}

或者类似的东西

【讨论】:

  • @hacketo。不,这不对。土地是一个对象,你可以迭代一个对象的属性。见文档api.jquery.com/jquery.each
  • 我遇到了同样的错误,谢谢你的帮助!
  • @phenxd 当我发表评论时,第一个不在这里...查看您的编辑
  • 我尝试了您编辑的响应(假设 value3 必须是 value2?),我得到了一些奇怪的错误 0[object HTMLOptionElement] 错误从 0 变为 6 5 次
  • 好的,我认为它有效,非常感谢您的帮助!我去用数据尝试一些东西。再次感谢队友
猜你喜欢
  • 1970-01-01
  • 2019-01-17
  • 1970-01-01
  • 2022-12-31
  • 1970-01-01
  • 2017-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多