js如何定义二维数组,一维的key为动态值。就是要处理二级菜单显示。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js如何定义二维数组,一维的key为动态值。就是要处理二级菜单显示。相关的知识,希望对你有一定的参考价值。

多个二级分类可能属于一个根分类,同一根分类的归到一个数组,php 可以很简单的就处理好了,在循环的时候 $xx[$val['parent_id'][] = $val; 。
但是js不能这样,如果这样的eval("var xx[parent_id] = [];"); 是正确的就好了。。。不知道有什么好的方法?

参考技术A 用PHP+json处理这个无敌了。我给你找代码去啊。

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为动态值。就是要处理二级菜单显示。的主要内容,如果未能解决你的问题,请参考以下文章

javascript 定义二维数组,两列,未知行数

JS中,如何把一个一维数组赋值给二维数组?

php 如何取二维数组中某个值,并组合成另一个一维数组进行implode

java数组(一维数组,二维数组)

php二维数组去掉外面的key

二维数组第一个值php