我想实现以下功能:
迭代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
的其他几个已注释的示例。
答案 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