cra*_*rab 2 javascript arrays object
<span id="local->ethernet->port3->rx_flow">q4234</span>
<span id="local->ethernet->port3->rx">q345</span>
<span id="local->ethernet->port1->rx_flow">128</span>
<span id="remote->id">128</span>
Run Code Online (Sandbox Code Playgroud)
我需要通过元素中的ID示例从中创建多维数组 <span id="local->ethernet->port3->rx_flow">q4234</span>
我需要的数组是 array["local"]["ethernet"]["port3"]["rx_flow"]="q4234"
我创建的功能是:
function make_cfg(){
var result=new Array();
var x=document.getElementById(*);
var len=x.length;
var arr;
for (var i=0; i<=len; i++;){
if(x[i].id){
if(x[i].id.indexOf("->") != -1) {
arr=x[i].id.split("->");
result=make_obj(result,arr);
}
}
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
我不知道如何发挥作用 make_obj()
我不会为你写完整件事,我只是稍微帮助了一下.
这个片段将采取两个字符串(基本id和innerHTML,在这里s和s2),并构造一个嵌套的对象(也有在Javascript没有关联数组)出来.
var s='local->ethernet->port3->rx_flow',
s2='q4234',
a=s.split('->'),
obj=constructObject(a, s2);
function constructObject(a, final) {
var val=a.shift();
var obj={};
if (a.length>0) {
obj[val]=constructObject(a, final);
} else {
obj[val]=final;
}
return obj;
}
Run Code Online (Sandbox Code Playgroud)
它使用递归来实现其目标.如果您对代码有任何疑问,请询问.
还剩下什么?
我想你想从跨度收集这些东西到一个对象,我的例子将为每个s/ 创建一个对象s2.如果您还有其他问题,我很乐意为您提供帮助.