Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重新构造嵌套数组集合_Javascript_Arrays_Data Structures - Fatal编程技术网

Javascript 重新构造嵌套数组集合

Javascript 重新构造嵌套数组集合,javascript,arrays,data-structures,Javascript,Arrays,Data Structures,我有一个数组,其中每个内部数组包含三项:邮政编码、街道名称和日期数组[用于垃圾收集] 用户将提供他们的邮政编码和门牌号,并且需要向他们显示适当的信息。在执行检查之后,还需要能够向每个“集合数组”添加日期 这是我的代码,但数据结构似乎很糟糕。如何改进 var postcodes = [ ["BT161JR18", "Londonderry Park", [collectionArrayBT161JR18]], ["BT161JR19", "Ballyregan

我有一个数组,其中每个内部数组包含三项:邮政编码、街道名称和日期数组[用于垃圾收集]

用户将提供他们的邮政编码和门牌号,并且需要向他们显示适当的信息。在执行检查之后,还需要能够向每个“集合数组”添加日期

这是我的代码,但数据结构似乎很糟糕。如何改进

var postcodes = [
        ["BT161JR18", "Londonderry Park", [collectionArrayBT161JR18]], 
        ["BT161JR19",  "Ballyregan Cresent",  [collectionArrayBT161JR19]],
        ["BT161JR11", "Ballyregan Road",  [collectionArrayBT161JR11]],
    ]   ; 

var collectionArrayBT161JR18 = ["16/05/14", "18/06/14", "19/07/14"];
var collectionArrayBT161JR19 = ["17/05/14", "11/06/14"];
var collectionArrayBT161JR11 = ["14/05/14", "20/06/14"];

您应该做的是使用对象数组而不是数组数组。。。 例如,相同的代码可以这样设计:

var collectionArrayBT161JR18 = ["16/05/14", "18/06/14", "19/07/14"];
var collectionArrayBT161JR19 = ["17/05/14", "11/06/14"];
var collectionArrayBT161JR11 = ["14/05/14", "20/06/14"];

var postcodes = [
        {postcode: "BT161JR18", place: "Londonderry Park", dates: collectionArrayBT161JR18}, 
        {postcode: "BT161JR19", place: "Ballyregan Cresent", dates: collectionArrayBT161JR19},
        {postcode: "BT161JR11", place: "Ballyregan Road", dates: collectionArrayBT161JR11}
    ]   ; 
通过这种方式,您不需要记住索引(随着时间的推移,您将忘记索引),而是使用逻辑名称

还请注意,您需要首先定义日期,然后将其进一步包含在邮政编码结构中


更新评论:搜索给定邮政编码的日期非常简单

//for your code
function findDates(pc /*postcode to search*/)
    for (var i=0; i<postcodes.length; i++) {
        if (postcodes[i][0] === pc)
            return postcodes[i][2][0]
    return false
}
//for suggested code
function findDates(pc /*postcode to search*/)
    for (var i=0; i<postcodes.length; i++) {
        if (postcodes[i].postcode === pc)
            return postcodes[i].dates
    return false
}
//为您的代码
函数findDates(pc/*要搜索的邮政编码*/)

对于(var i=0;i在javascript中设置数组

    var postcodes = new Array();
    var collectionArrayBT161JR18 = new Array();
    var collectionArrayBT161JR19 = new Array();
    var collectionArrayBT161JR11 = new Array();

您应该使用邮政编码作为对象中的属性来创建主容器,而不是使用数组。这样,您就不需要迭代数组来查找邮政编码

var collectionArrayBT161JR18 = ["16/05/14", "18/06/14", "19/07/14"];
var collectionArrayBT161JR19 = ["17/05/14", "11/06/14"];
var collectionArrayBT161JR11 = ["14/05/14", "20/06/14"];

var postcodes = {
    BT161JR18: {place: "Londonderry Park",   dates: collectionArrayBT161JR18}, 
    BT161JR19: {place: "Ballyregan Cresent", dates: collectionArrayBT161JR19},
    BT161JR11: {place: "Ballyregan Road",    dates: collectionArrayBT161JR11}
}

请用短语表达您需要帮助的特定问题。问题应包含特定问题。您可以阅读。我不认为您打算将每个集合数组放入其他空数组中,但这就是您所拥有的,因此
postcodes[0][2]
是一个包含集合数组的数组,而不是日期数组。是的,谢谢,我也尝试过。我遇到的问题是需要使用算法搜索数组。例如,如果用户输入BT161JR18,如何在不知道邮政编码索引的情况下显示日期信息?您需要通过当然,感谢您的帮助我想检查一下用户输入的邮政编码是否存在于数组中..我是否需要在searchArray()中使用参数?函数searchArray(){for(var I=0;I