Javascript 递归循环直到我们';重新处理对象[JS]
我正在为Photoshop构建一个基于层的插件。为此,我需要为每个层构建一个数组,在执行函数时返回true(检查名称是否匹配) 我怎样才能基本上“递归地”遍历对象和子对象,直到遍历完所有内容(在过程中将“选定”项放入数组中) 对象只是一个普通的javascript对象,其中包含大量的对象(还有更多的对象)。尝试以下方法:Javascript 递归循环直到我们';重新处理对象[JS],javascript,object,recursion,Javascript,Object,Recursion,我正在为Photoshop构建一个基于层的插件。为此,我需要为每个层构建一个数组,在执行函数时返回true(检查名称是否匹配) 我怎样才能基本上“递归地”遍历对象和子对象,直到遍历完所有内容(在过程中将“选定”项放入数组中) 对象只是一个普通的javascript对象,其中包含大量的对象(还有更多的对象)。尝试以下方法: var isASelectedLayer = function(element) { ... } var objectWithLayers = {...} var s
var isASelectedLayer = function(element) {
...
}
var objectWithLayers = {...}
var selected = [];
var lookForSelectedLayers = function(o) {
for(element in o) {
if(isASelectedLayer(o[element]))
selected.push(o[element]);
else
lookForSelectedLayers(o[element]);
}
};
lookForSelectedLayers(objectWithLayers);
类似这样的东西,但目前它缺少很多支票:
function showProperties(object, prefix) {
if (typeof prefix == "undefined") prefix = "";
var result = ""
for (property in object) {
result += prefix + property+"="+object[property]+" "+typeof object[property]+"\n";
if (typeof object[property] == "object") {
result += showProperties(object[property], prefix+" ");
}
}
return result;
}
问题是你通常不熟悉递归并想知道如何做?我不得不说是的-我真的不知道如何做。你是否尝试过在StackOverflow上搜索答案?我快速搜索了一下,发现了很多类似的问题。