Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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 如何在串接字符串时使变量可选?_Javascript_Jquery_Html_String - Fatal编程技术网

Javascript 如何在串接字符串时使变量可选?

Javascript 如何在串接字符串时使变量可选?,javascript,jquery,html,string,Javascript,Jquery,Html,String,我正在操作字符串以在UI中显示,数据正在使用下面的代码动态显示,有时我无法获得标题和详细信息,因此如何使IHeader和IResponse对于下面的字符串连接是可选的 如果我没有IHeader,它将在IHeader.id处中断,并引发异常。我想显示可用于渲染的任何数据 main.js const data = [{ id: "header", name: "IHeader" }, { id: "param", name: "IParams" }, { id

我正在操作字符串以在UI中显示,数据正在使用下面的代码动态显示,有时我无法获得
标题
详细信息
,因此如何使
IHeader
IResponse
对于下面的字符串连接是可选的

如果我没有IHeader,它将在IHeader.id处中断,并引发异常。我想显示可用于渲染的任何数据

main.js

const data = [{
    id: "header",
    name: "IHeader"
}, {
    id: "param",
    name: "IParams"
}, {
    id: "details",
    name: "IResponse"
}]

function buildText(data) {
    var IParams;
    var IResponse;
    var IHeader;
    for (var item of data) {
        if (item.id === "param") {
            IParams = item;
        } else if (item.id === "header") {
            IHeader = item;
        } else if (item.id === "details") {
            IResponse = item;
        }
    }
    var text = '';
    text += app + '.setConfig({\n' + "env:" + getEnv() + '\n});' + '\n\n';
    text += 'let param:' + IParams.name + ' ' + '=' + '' + JSON.stringify(request, null, 4) + ';\n\n';
    text += ref + '(' + 'param,(result:' + ' ' + '{' + '\n' + IHeader.id + ':' + IHeader.name + '\n' + IResponse.id + ':' + IResponse.name + '\n' + '})' + ' ' +
        ' => {\n  console.log(result); \n});';

}

1-您可以尝试创建具有空值的对象。这将防止出现异常

   emptyObject = {id: ""} // more empty keys, if there is
   IParam = (item.id === "param") ? item : emptyObject
2-如果
未定义
,则忽略该变量的串联

if (Iparam) {
    // concatenation ..
}

因此,在ifs中构建字符串而不是设置变量……使用object和@User863我尝试了IHeader[id]或IHeader[“id”]两种方法都不起作用,但仍然抛出未定义的id