如果对象满足某些条件,如何迭代对象中的数组?

时间:2014-01-09 10:47:53

标签: jquery each

我想实现以下功能:

迭代k1的值为woo hoo!的对象中的数组。

以下有效,但我不确定这是最好的方法,因为我认为它需要在找到匹配项之前循环遍历每个对象。

阵列

myArray = [{"k1": "woo hoo!", "k2": ["k2_1","k2_2","k2_3"], "k3": ["k3_v1"]},{"k1": "boo", "k2": ["k2_v1"], "k3": ["k3_v1"]}]

的jQuery

$.each(myArray, function (obj, v) {
    $.each(v.k2, function (i, value) {
        if (v.k1 == "woo hoo!") {
            alert(value);
        }
    });
});

以下内容包含此示例以及我用于了解$.each的其他几个已注释的示例。

http://jsfiddle.net/rwone/MnASV/5/

1 个答案:

答案 0 :(得分:4)

你要做的唯一改变是如果条件超出第二个循环就移动。

在你的情况下,k1属于外部对象,但你正在迭代第二个循环,即使值不匹配,也可以通过之前检查来避免。

// iterate over array within each object
$.each(myArray_1, function (obj, v) {
    if (v.k1 == "woo hoo!") {
        $.each(v.k2, function (i, value) {
            console.log(value);
        });
    }
});

演示:Fiddle