我有一个字符串如下: 豹^粉红色,绿色,黄色|狗^热,顶设置一个可变长度的二维阵列
此字符串意味着我有2个主块(由一个'分离|'): “豹”和“狗” 在这两个主要的块,我有,让我们说“子类”。
我想创造表示的2维阵列(在逻辑)如下:
豹(阵列1)=>粉红(要素1),绿(要素2),黄色(要素3) 狗(阵列2)=>热(元素1),顶部(元素2)
另外,我想能够添加一个主块,让可以说“猫”与可能的类别“可爱,骄傲”二维数组
通过使用JavaScript的分割函数,我设法得到了一个包含“Panther^Pink,Green,Yellow”和“Dog^Hot,Top”的数组。
请注意,该字符串通过Ajax接收,并且可以是任意长度,但始终使用上面显示的格式。
-----------------------------编辑---------------- ------------
好了,我的脚本到目前为止是:
$(document).ready(function(){
appFunc.setNoOfAppBlock('Panther^Pink,Green,Yellow|Dog^Hot,Top');
appFunc.alertPing();
});
var appFunc = (function(stringWithSeper) {
var result = {},
i,
categories = new Array(),
subcategories;
return {
setNoOfAppBlock: function(stringWithSeper){
categories = stringWithSeper.split("|");
for (i = 0; i < categories.length; i++) {
subcategories = categories[i].split("^");
result[subcategories[0]] = subcategories[1].split(",");
}
},
alertPing: function(){
alert(result["Panther"][1]);
}
};
})();
但是,函数 “alertPing” 是不是 “警报” anything.What上午我是做错了?
你是一个关联数组,即哈希:
如果该格式是您可以接受如下,那么你可以分析它? – nikhil 2011-12-27 07:42:50
如果以上可以使用关联数组来实现,那么,是的..虽然我更喜欢简单的二维数组。 – dinchakpianist 2011-12-27 07:49:04
你并没有描述“简单的二维数组”,而是描述了一个由简单的一维数组构成的关联数组。 JavaScript的等价关联数组就是“对象”,这是我在我的回答中所使用的(我看到techfoobar也使用了一个对象,几秒钟后我就打了几乎相同的答案)。如果你使用一个简单的二维数组,那么你要么丢失“Panther”和“Dog”键,要么你最终将它们作为每个子数组的第一个元素 - 是你想要的吗? – nnnnnn 2011-12-27 08:06:26