gpt4 book ai didi

javascript - 设置可变长度二维数组

转载 作者:行者123 更新时间:2023-11-28 16:23:59 25 4
gpt4 key购买 nike

我有一个字符串如下:黑豹^粉色、绿色、黄色|狗^热色、上衣

这个字符串意味着我有 2 个主要 block (用“|”分隔):“豹”与“狗”在这两个主要 block 下,我有“子类别”。

我想创建一个二维数组(逻辑上)表示如下:

黑豹(数组 1)=> 粉色(元素 1)、绿色(元素 2)、黄色(元素 3)Dog(数组 2) => Hot(元素 1), Top(元素 2)

另外,我希望能够向二维数组添加一个主 block ,例如“猫”,可能的类别“可爱,骄傲”

我通过使用 JavaScript 的 split 函数成功获得了一个包含“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”功能并没有“警告”任何东西。我做错了什么?

最佳答案

对我来说,您的数据最符合逻辑的表示:

Panther^Pink,Green,Yellow|Dog^Hot,Top

是一个 JavaScript 对象,每个类别都有一个属性,每个类别都是一个包含子类别的数组:

var data = {
Panther : ["Pink", "Green", "Yellow"],
Dog : ["Hot", "Top"]
}

然后您可以通过说data["Dog"][1](给出“Top”)来访问它。

如果您可以接受该格式,那么您可以按如下方式解析它:

function parseData(data) {
var result = {},
i,
categories = data.split("|"),
subcategories;

for (i = 0; i < categories.length; i++) {
subcategories = categories[i].split("^");
result[subcategories[0]] = subcategories[1].split(",");
}

return result;
}

var str = "Panther^Pink,Green,Yellow|Dog^Hot,Top";
var data = parseData(str);

关于javascript - 设置可变长度二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8642199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com