从 Javascript 中的数组生成字符串
Generate a string from an array in Javascript
我正在尝试根据字符串数组生成点文件。
edges =[["Source1" ,"interfaceA" , "high" , "Sink1" , "interfaceB" , "high"],
["Source2" ,"interfaceC" , "high" , "Sink2" , "interfaceD" , "low"]]
我希望我的输出点文件数据看起来像:
digraph mydot {
"Source1" -> "Sink1"
[
label=<<font color="green">interfaceA</font>--><font color="green">interfaceB</font>>
];
"Source2" -> "Sink2"
[
label=<<font color="green">interfaceC</font>--><font color="red">interfaceD</font>>
];
}
我尝试了下面的代码,但是 returns 像二合字母 unnamed {,}
let mydot ='digraph mydot { ';
mydot += edges.map(edge => {
let sourceInterfaceColor = "red";
let sinkInterfaceColor = "red";
if (edge[2]=="high")
sourceInterfaceColor ="green";
if(edge[5]=="high")
sinkInterfaceColor ="green";
mydot +=`\
${edge[0]} -> ${edge[3]} \
[ \
label=<<font color= \"${sourceInterfaceColor}\">\"${edge[1]}\"</font>--><font color=\"${sinkInterfaceColor}\">${edge[4]}</font>> \
];`
.stripMargin});
mydot +='}';
定义 mydot 以获得正确的二合字母数据的正确方法是什么。
这是实现所需输出的直接方法。一般来说,template literals enable multiline features
const edges =[["Source1" ,"interfaceA" , "high" , "Sink1" , "interfaceB" , "high"], ["Source2" ,"interfaceC" , "high" , "Sink2" , "interfaceD" , "low"]]
const edgeToString = edge => `
"${edge[0]}" -> "${edge[3]}"
[
label=<<font color="green">${edge[1]}</font>--><font color="green">${edge[4]}</font>>
]
`.trimEnd()
const digraphToString = edges => `digraph mydot {${edges.map(edgeToString).join('')}\n}`
console.log(digraphToString(edges))
我正在尝试根据字符串数组生成点文件。
edges =[["Source1" ,"interfaceA" , "high" , "Sink1" , "interfaceB" , "high"],
["Source2" ,"interfaceC" , "high" , "Sink2" , "interfaceD" , "low"]]
我希望我的输出点文件数据看起来像:
digraph mydot {
"Source1" -> "Sink1"
[
label=<<font color="green">interfaceA</font>--><font color="green">interfaceB</font>>
];
"Source2" -> "Sink2"
[
label=<<font color="green">interfaceC</font>--><font color="red">interfaceD</font>>
];
}
我尝试了下面的代码,但是 returns 像二合字母 unnamed {,}
let mydot ='digraph mydot { ';
mydot += edges.map(edge => {
let sourceInterfaceColor = "red";
let sinkInterfaceColor = "red";
if (edge[2]=="high")
sourceInterfaceColor ="green";
if(edge[5]=="high")
sinkInterfaceColor ="green";
mydot +=`\
${edge[0]} -> ${edge[3]} \
[ \
label=<<font color= \"${sourceInterfaceColor}\">\"${edge[1]}\"</font>--><font color=\"${sinkInterfaceColor}\">${edge[4]}</font>> \
];`
.stripMargin});
mydot +='}';
定义 mydot 以获得正确的二合字母数据的正确方法是什么。
这是实现所需输出的直接方法。一般来说,template literals enable multiline features
const edges =[["Source1" ,"interfaceA" , "high" , "Sink1" , "interfaceB" , "high"], ["Source2" ,"interfaceC" , "high" , "Sink2" , "interfaceD" , "low"]]
const edgeToString = edge => `
"${edge[0]}" -> "${edge[3]}"
[
label=<<font color="green">${edge[1]}</font>--><font color="green">${edge[4]}</font>>
]
`.trimEnd()
const digraphToString = edges => `digraph mydot {${edges.map(edgeToString).join('')}\n}`
console.log(digraphToString(edges))