gpt4 book ai didi

jQuery对对象的递归迭代

转载 作者:IT老高 更新时间:2023-10-28 12:51:52 26 4
gpt4 key购买 nike

前几天我想我在 jQuery 中看到了一个对象迭代器,它有一个可以设置为递归迭代子对象的标志。我认为它是 jQuery.each() 的一部分,但现在我在文档中看不到该功能。

jQuery中有没有这样的迭代器可以自动递归?

(我知道如何用 javascript 做到这一点。只是想知道我是否真的看到了我以为我看到的东西。)

非常感谢!

编辑: 明确地说,我正在考虑一种实用方法,例如 jQuery.each(),它将递归地遍历 javascript 对象及其嵌套对象。

鉴于下面的示例,each() 方法将遍历所有对象,包括 myobj.obj2.key2 中的嵌套对象。

我可以发誓我在 jQuery 文档中看到了一些关于此的内容,但现在我找不到了。

谢谢。

var myobj = {
obj1: {key1:'val1', key2:'val2'},
obj2: {key1:'val1', key2: {nest1:'val1', nest2:'val2', nest3:'val3'}},
obj3: {key1:'val1', key2:'val2'}
}

$jQuery.each(myobj, function(key,val) {
// Code to run over each key/val pair
// Does so recursively to include all nested objects
})

最佳答案

.find('selector') 方法基本上是 .children() 的递归版本,它会找到与选择器匹配的任何后代对象,而 .children() 仅在第一级查找对象后代。

第二次编辑(我第一次措辞很糟糕,代码有点困惑!):

好吧,我不认为这个功能作为一个标志是有意义的:你可以很高兴地永远递归通过那个对象(相信我,我打破了 firefox 这样做),所以你需要某种交互来确保你仅当子对象是有效的递归候选时才会递归。

你需要做的只是像这样拆分函数:

var myobj = {
obj1: {
key1: 'val1',
key2: 'val2'
},
obj2: {
key1: 'val1',
key2: {
nest1: 'val1',
nest2: 'val2',
nest3: 'val3'
}
},
obj3: {
key1: 'val1',
key2: 'val2'
}
}

$jQuery.each(myobj, function(key, val) {
recursiveFunction(key, val)
});

function recursiveFunction(key, val) {
actualFunction(key, val);
var value = val['key2'];
if (value instanceof Object) {
$.each(value, function(key, val) {
recursiveFunction(key, val)
});
}

}

function actualFunction(key, val) {
/// do stuff
}

关于jQuery对对象的递归迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2203958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com