【问题标题】:How to create array in Javascript?如何在Javascript中创建数组?
【发布时间】:2016-03-01 01:09:35
【问题描述】:

我有一种情况,我想从数组中的查询中输出两个表列。理想情况下,我想输出一个 ID_1,然后输出第二个 ID_2,在将所有 ID 存储在数组中之后,我想循环遍历该数组以检查 ID_1 是否大于 0,如果是,我想使用匹配的 ID_2 来隐藏元素。这是我到目前为止的代码:

var records = [];

~[tlist_sql;
  SELECT ID_1, ID_2 
  FROM SLOTS
  ]
 records.push("~(ID_1)","~(ID_2)");
[/tlist_sql]

for(var i=0; i< records.length; i++){
    //if ID_2 is greater than 0 
    if(records[i].idTwo > 0){
        var test = ('#row_' + records[i].idOne).val();  
                alert(test)
        //here I want to use ID_1 to hide row 
        $j('#row_' + records[i].idOne).parent('.hideElement').hide();
        $j('#button1').hide();
    }       
}

这是我的数组记录的样子:

[-1,2050,-1,2046,15,2048,0,2044,10,2051,0,2047]

所以你可以在这个数组中看到只有两条记录会通过 if 语句,其中 ID_1 是 15,10,ID_2 是 2048,2051。我当前的代码没有使用正确的值,看起来 id 是如何拆分的。有谁知道我应该如何寻找 ID_1 然后寻找 ID_2 并且在这种情况下最好使用数组?谢谢。

【问题讨论】:

  • 你能发布你期望数组的样子吗?
  • 代码的第 1 行创建了一个数组。
  • 我想让我的数组看看它是怎样的,但我的问题是如何在我的 if 语句中循环和获取 ID_2。
  • 所以在您发布的数组中,我们正在查看[ID_1, ID_2, ID_1, ID_2]?
  • 这是 powerschool 用于从查询中输出值的特殊代码。

标签: javascript arrays


【解决方案1】:

可能是这样的:

var records = [];

~[tlist_sql;
SELECT ID_1, ID_2 
FROM SLOTS
]

records.push({
   'idOne' : "~(ID_1)",
   'idTwo' : "~(ID_2)"
});
[/tlist_sql]

那么当访问这些记录时:

for(var i=0; i< records.length; i++){
    //if ID_1 is greater than 0 
    if(records[i].idOne > 0){
        //here I want to use ID_2 to hide row that has matching ID
        $j('#row_' + records[i].idTwo).parent('.hideElement').hide();
        $j('#button1').hide();
    }       
}

【讨论】:

  • 开枪!你先搞定了。我确实喜欢将相关数据封装在对象中。
  • 我不知道为什么,但是这行代码: $j('#row_' + records[i].idTwo) 如果我尝试执行 .val() 并且 alert 会给我值 'on ','上'。你知道什么会导致输出吗​​?
  • 您能否使用您现在对值进行警报的代码更新您的主要问题。 #row 的 HTML 也有助于更好地理解您的意思。
  • 我确实更新了我的问题。我使用 JQuery 选择器获取 row_ID 并隐藏父级的代码行不起作用。我不确定我的 JQuery 或我传入的值是否有问题。
  • 在您更新的代码中,您有 idOne,其中 idTwo 应该是,反之亦然。根据您的描述,您想检查 idOne 是否 > 0,然后使用 idTwo 匹配和隐藏元素。不确定这是否能解决您的问题。
【解决方案2】:

创建一个对象:

var records = [];

~[tlist_sql;
  SELECT ID_1, ID_2 
  FROM SLOTS
  ]
 records.push({id1:":~(ID_1)",id2:"~(ID_2)"});
[/tlist_sql]

for(var i=0; i< records.length; i++){
    //if ID_1 is greater than 0 
    if(records[i].id1 > 0){
        //here I want to use ID_2 to hide row that has matching ID
        $j('#row_' + records[i].id2).parent('.hideElement').hide();
        $j('#button1').hide();
    }       
}

https://jsfiddle.net/78s3uL95/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-21
    • 2019-12-23
    • 2017-08-02
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    相关资源
    最近更新 更多