我正在尝试查找,直到找到一个特定的值;目前使用这样的if语句,但现在只有两个级别,我不需要在条件满足之前需要多少if语句。
if (newObject.parent.toString() != 1) {
alert(newObject.shareholder + ' no es 1 Buscaremos sus padres');
var newObject = parentSearch.search(newObject.parent.toString())[0].item;
if (newObject.parent.toString() != 1) {
var newObject = parentSearch.search(newObject.parent.toString())[0].item;
} else {
alert(newObject.shareholder + ' Found');
}
} else {
alert(newObject.shareholder + ' Found');
}
有没有办法避免使用无限IF语句?
您可以如下使用递归:
function checkObject(newObject) {
if (newObject.parent.toString() != 1) {
alert(newObject.shareholder + ' no es 1 Buscaremos sus padres');
const newObject = parentSearch.search(newObject.parent.toString())[0].item;
checkObject(newObject) // recursion
} else {
alert(newObject.shareholder + ' Found');
}
}
如果您不能使用递归,您可以使用以下内容:
function checkObject(newObject) {
while (true){
if (newObject.parent.toString() != 1) {
alert(newObject.shareholder + ' no es 1 Buscaremos sus padres');
newObject = parentSearch.search(newObject.parent.toString())[0].item;
} else {
alert(newObject.shareholder + ' Found');
break;
}
}
}
您可能需要检查JSONPath以进行深度查找:https://jsonpath.com/.
它允许您生成字符串查询并在对象上执行,并返回与查询匹配的字段。