Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Extjs/js多维数组转换为字符串_Javascript_Extjs - Fatal编程技术网

Javascript Extjs/js多维数组转换为字符串

Javascript Extjs/js多维数组转换为字符串,javascript,extjs,Javascript,Extjs,我很难从多维数组构造特定的字符串。 这是我的数组: [{query:'number:1',操作数:''}, [{query:'number:2',操作数:'&&&'},{query:'number:3',操作数:'&&&'}]], [{query:'number:4',操作数:'| |'},{query:'number:5',操作数:'| |'}] 如何从该数组构造一个字符串,使其如下所示: ((编号:1&&(编号:2&&number:3))| |(编号:4 | |编号:5)) 我已经创建了一个

我很难从多维数组构造特定的字符串。

这是我的数组:
[{query:'number:1',操作数:''},
[{query:'number:2',操作数:'&&&'},{query:'number:3',操作数:'&&&'}]],
[{query:'number:4',操作数:'| |'},{query:'number:5',操作数:'| |'}]

如何从该数组构造一个字符串,使其如下所示:

((编号:1&&(编号:2&&number:3))| |(编号:4 | |编号:5))

我已经创建了一个递归函数,但是结果并不像我期望的那样返回
以下是我的代码:

function queryRecursive(queArr){
var que='';
Ext.each(queArr, function(q,idx){
    if(Ext.typeOf(q)==='array'){
        que+=me.queryRecursive(q);
    }else{
        if(idx===0){
            if(q.operand===''){
                que +=q.operand+q.query;
            }else{
               que +=q.operand+'('+q.query;
            }
        }else if(idx===queArr.length-1){
            que +=q.operand+q.query+')';
        }else{
            que +=q.operand+q.query;
        }
    }
});
return que;
}

以下是返回结果:


number:1&&(number:2&&number:3)| | |(number:4 | | number:5)

以下函数生成预期输出。 我添加了一个secound参数
addInnerBracket
,它指示在何处添加开头括号

检查一下


下面的函数生成预期的输出。 我添加了一个secound参数
addInnerBracket
,它指示在何处添加开头括号

检查一下

function queryRecursive(queArr, addInnerBracket) {
    var que = addInnerBracket ? '' : '(';

    Ext.each(queArr, function (q, idx) {
        if (Ext.isArray(q)) {
            que += queryRecursive(q, true);
        }
        else {
            var innerBracket = addInnerBracket ? '(' : '';
            addInnerBracket = false; // only add one inner bracket
            que += q.operand + innerBracket + q.query;
        }
    });

    return que + ')';
}