用JavaScript写一个解析函数
将如下字符串:
bus -> pcc(pcc1) -> transformer -> tfm(tfm1) -> elink
tfm(tfm1) -> load
pcc(pcc1) -> transformer -> tfm(tfm2) -> load
pcc(pcc1) -> transformer -> tfm(tfm3) -> load
bus -> load
解析成类似于下面的json:
{
"nodeType": "bus",
"links": [
{
"nodeType": "pcc",
"nodeName": "pcc1",
"next": {
"nodeType": "transformer",
"links":[
{
"nodeType": "tfm",
"nodeName": "tfm1",
"links": [
{
"nodeType": "elink",
},
{
"nodeType": "load",
}
]
},
{
"nodeType": "tfm",
"nodeName": "tfm2",
"next": {
"nodeType": "load",
}
},
{
"nodeType": "tfm",
"nodeName": "tfm3",
"next": {
"nodeType": "load",
}
},
]
}
},
{
"nodeType": "load",
}
]
}
function parseText(text) {
const lines = text.split('\n');
const root = { nodeType: 'bus', links: [] };
let currentParent = root;
lines.forEach(line => {
const parts = line.trim().split(' -> ');
let parent = root;
parts.forEach((part, index) => {
const match = part.match(/(\w+)\((\w+)\)/);
let nodeType, nodeName;
if (match) {
nodeType = match[1];
nodeName = match[2];
} else {
nodeType = part;
}
let node = parent.links.find(n => n.nodeType === nodeType && n.nodeName === nodeName);
if (!node) {
node = { nodeType, nodeName };
if (index !== parts.length - 1) {
node.links = [];
}
parent.links.push(node);
}
parent = node;
});
});
return root;
}
const text = `
bus -> pcc(pcc1) -> transformer -> tfm(tfm1) -> elink
tfm(tfm1) -> load
pcc(pcc1) -> transformer -> tfm(tfm2) -> load
pcc(pcc1) -> transformer -> tfm(tfm3) -> load
bus -> load
`;
console.log(JSON.stringify(parseText(text), null, 2));
问题内容: 我能够通过读取Excel文件,但它会输出文本以及奇怪的字符。我需要按行读取文件,读取每一列中的数据并将其转换为JSON。 如何逐行读取xls文件? 问题答案: 函数下方将Excel工作表(XLSX格式)数据转换为JSON。您可以向函数添加promise。
本文向大家介绍Javascript自定义事件详解,包括了Javascript自定义事件详解的使用技巧和注意事项,需要的朋友参考一下 Javascript自定义事件,其本质就是观察者模式(又称订阅/发布模式),它的好处就是将绑定事件和触发事件相互隔离开,并且可以动态的添加、删除事件。 下面通过实例,一步一步构建一个具体的Javascript自定义事件对象。 如:我有一个action1函数,我想每次在
本文向大家介绍JavaScript中自定义事件用法分析,包括了JavaScript中自定义事件用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript中自定义事件用法。分享给大家供大家参考。具体分析如下: 在web前端开发中,很多人可能不会用到js的自定义事件,但如果是做一个相对来说比较大的项目,尤其是多人协同开发的时候,自定义事件就显得很重要了。那么,什么是js中的自
我正在使用Coingecko API。但我就是无法解析数据。下面是示例数据。解析我要做的每个块。 https://api.coingecko.com/api/v3/exchanges 我使用的示例代码: null null
问题内容: 我使用atocomplete.jquery插件来建议输入文本,结果得到了这个数组: 当我开始搜索从子字符串开始的东西时,它显示出数组排序如下: 我需要这样的东西: 有任何想法吗? 问题答案: 该插件可能区分大小写。尝试输入而不是。您可能将结果设置为不区分大小写。这个问题可能会有所帮助。 对于上的自定义排序函数,您可以使用任何JavaScript函数并将其作为参数传递给的方法,如下所示:
问题内容: 我需要解析RSS feed(XML版本2.0)并在HTML页面中显示已解析的详细信息。 问题答案: 解析提要 使用jQuery的jFeed (不建议这样做,请参阅其他选项。) 借助jQuery的内置XML支持 使用jQuery和[Google AJAX Feed API](https://developers.google.com/feed/) 但这意味着您依赖它们在线和可访问。 建筑