"数组"是我们最常用到的一种对象, 很多编程语言都支持数组.
而通常数组是以数字进行索引的, 于是就出现了各种类似于数组并以文本的方式索引的对象.
最近在用Asp写一个无限级的树结构,
第一种最简单的莫过于用Access SQL命令不断的递归查询并返回结果
第二种编写MS SQL函数, 与第一种一样, 也是用递归, 只是将程序的递归过程转移到MS SQL上而已, 但速度会比第一种快, 好像是由于MS Sql比Access SQL更高效的原因, 也还有另一原因是因为使用了MS SQL编程, (对MS SQL不太熟悉, 只认识这么多)
第三种是使用Asp的Directory字典对象或是使用C#.net的HashTable对象, 这两个对象最大的特点是可以用文本进行索引
第四种则是使用数组. 这是跟大家讨论的一种思路, 不谈语言的具体写法, 本人比较菜, 望高手赐教!
数组, 以索引号进行索引, 而如何取得或者说是定位这个"索引号"
我想可以在填充数据的时候, 构建一个字符串, 以达到数组的效果
如以JavaScript为例:
var index="";
var abc = [["a","a值"],["b","b值"],["c","c值"],["d","d值"],["e","e值"],["f","f值"]];
for(var i=0;i<abc.length;i++)
{
index +="#" + abc[i][0] + "#"; //此处的#为特殊符号, 可以使用其它字符代替或其它算法代替
}
function arr_index(val)
{
var r_val = index.indexOf("#"+val+"#");
if(r_val>0) return r_val/3; //此处的3 为#a#的长度, 如果这里使用了#ab#则会索引错误, 可通过改善代码解决这个问题
return 0;
}
document.write(abc[arr_index("e")][1]);
通过更完善的算法, 可以使这个结构更加强大, 我使用asp的vbscript, 完成了使用数组实现无限级树结构.
只是使用indexOf定位字符串位置返回数组的索引位位置
相对于for循环来定位索引位置, 不知道哪个速度更快呢?
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!