js如何定义二维数组,一维的key为动态值。就是要处理二级菜单显示。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js如何定义二维数组,一维的key为动态值。就是要处理二级菜单显示。相关的知识,希望对你有一定的参考价值。
多个二级分类可能属于一个根分类,同一根分类的归到一个数组,php 可以很简单的就处理好了,在循环的时候 $xx[$val['parent_id'][] = $val; 。
但是js不能这样,如果这样的eval("var xx[parent_id] = [];"); 是正确的就好了。。。不知道有什么好的方法?
php中 json_encode这个函数可以直接把数组变成json格式的。
然后你在前台就可以用来了,就不用自己拼字符串,拆字符串了。我就得从数据库取值之后,可以直接用encode这个函数,不过你的这个应该给组成2维数组,然后encode
我以前也是这样拼字串的,后来用的这个功能老强大了,都不怎么用写代码了。追问
哥我做php三年了,如果用php处理的话,我就不会在这发帖了。。。
参考技术B 我顶 fantasy_wl 的回答。js中, 多维数组的执行效率是相当慢的 【javascript高级程序设计 中有提到】
这种以索引方式查找value的操作, 用json对象 简直是太正确了。 参考技术C var a =[];
a[0] = [1,2,3];
a[1] = [4,5]
js的数组很灵活,有什么不行的?追问
我的意思是 o,1下标是个变量 怎么办?
追答a['index'] = 1;
追问var dJobtype='@4010200|代表|0@7001000|管理|0';
var dSubjobtype='@006|销售代表|4010200@008|客户代表|4010200@000|销售总监|7001000@001|销售经理|7001000@002|销售主管|7001000';
显示效果:
代表
销售代表
客户代表
管理
销售总监
销售经理
销售主管
可以了,你试试。
var dJobtype='@4010200|代表|0@7001000|管理|0';
var dSubjobtype='@006|销售代表|4010200@008|客户代表|4010200@000|销售总监|7001000@001|销售经理|7001000@002|销售主管|7001000';
var a = dJobtype.replace(/@/,'').split('@');
var jobs = new Array();
for(var i=0;i');
for(var j=0;j');
JS二维数组转一维数组
// [a:'1',b:[c:'4',d:'5',c:'4',d:'5'],a:'1',b:[c:'4',d:'5']]
// [a:1,c:4,d:3,a:1,c:4,d:5,a:1,c:4,d:5]
上面的数组怎么才能转换成下面这样的
这。。。。完全没有意义的操作吧。
<script type="text/javascript">
var arr = [
a:'1',b:[c:'4',d:'5',c:'4',d:'5'],
a:'1',b:[c:'4',d:'5']
]
var narr = [];
for(let i =0;i<arr.length;i++)
let o = ;
let a = arr[i]
o.a= a.a
if(a.b)
let no = o;
for(let j=0;j<a.b.length;j++)
let b = arr[i].b[j];
no.c=b.c;
no.d=b.d;
narr.push(no);
alert(narr)
// [a:1,c:4,d:3,a:1,c:4,d:5,a:1,c:4,d:5]
</script>
追问 a: '1', b: [ c: '4', d: '5' , c: '4', d: '5' ]
a:1
b: [ c: '4', d: '5' , c: '4', d: '5' ]
你好,请问怎么把上面转成这两个呢
看了我的思路 自己跟一下 挺简单的事 自己好好想想不久能弄出来了么?
参考技术A 就是两遍遍历啊,没啥难度:var s =JSON.parse("[a:'1',b:[c:'4',d:'5',c:'4',d:'5'],a:'1',b:[c:'4',d:'5']]");
var resultA = [];
var resultO = ;
for(int i=0;i<s.length;i++)
resultO = ;
var a = s["a"];
resultO["a"] = a
var b = s["b"];
for(var j=0;j<b.length;j++)
resultO["c"] = b[j]["c"];
resultO["d"] = b[j]["d"];
resultA.push(resultO);
参考技术B 循环可以解决
以上是关于js如何定义二维数组,一维的key为动态值。就是要处理二级菜单显示。的主要内容,如果未能解决你的问题,请参考以下文章