Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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/2/jquery/76.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_Jquery_Multidimensional Array - Fatal编程技术网

无法从Javascript中的二维数组中获取值

无法从Javascript中的二维数组中获取值,javascript,jquery,multidimensional-array,Javascript,Jquery,Multidimensional Array,我根据我的角色id在二维数组中插入值,即 var tdarray = [[]]; tdarray[40].push(22); 其中40是我的角色id,22是它的值。 但是,当我打印此值时,它显示为null alert(tdarray[40][0]); //this shows no value. 我猜jquery中的二维数组不允许在特定位置插入值。您能建议我如何克服这个问题吗。 全部代码都在这里 var tdarray = [[]]; var incr = 1; var check; $

我根据我的角色id在二维数组中插入值,即

var tdarray = [[]]; 
tdarray[40].push(22); 
其中40是我的角色id,22是它的值。 但是,当我打印此值时,它显示为null

alert(tdarray[40][0]); //this shows no value.
我猜jquery中的二维数组不允许在特定位置插入值。您能建议我如何克服这个问题吗。 全部代码都在这里

var tdarray = [[]];
var incr = 1;
var check;
$(function () {
    $('.toggle_checkbox').change(function () {
        if (check === null) {} else {
            if (this.name == check) {
                incr++;
            } else {
                incr = 1;
            }
        }
        var tval = $(this).val();
        check = this.name;
        tdarray[this.name].push(tval);
    });
});
Html代码

<table border = "0"
cellspacing = "0"
cellpadding = "1" >
    <tbody>
               <c:forEach items="${accessRightValues}" var="rights" >
        <tr style="height: 40px;">
            <td style="width: 240px;"><input type="checkbox" name="<c:out value="${rights.roleid}"/>" value="1" class="toggle_checkbox"> Add </td>
            <td style="width: 240px;"><input type="checkbox" name="<c:out value="${rights.roleid}"/>" value="2" class="toggle_checkbox">Update</td>
            <td style="width: 240px;"><input type="checkbox" name="<c:out value="${rights.roleid}"/>" value="3" class="toggle_checkbox">View </td>
             <td style="width: 240px;"><input type="checkbox" name="<c:out value="${rights.roleid}"/>" value="4" class="toggle_checkbox">Delete </td>
            <td style="width: 240px;"><input type="checkbox" name="<c:out value="${rights.roleid}"/>" value="5" class="toggle_checkbox">Assign </td>
        </tr>

        </c:forEach>   

        </tbody> < /table>

添加
更新
看法
删除
分配

我的问题是,id 40可以保存多个值。因此我想知道如何在jquery中使用多维数组来实现这一点。也可以有多个角色id,例如50,57,它们将再次保存多个值。请帮助我了解同样的问题。 我想在我的spring控制器中传递这个二维数组。 tdarray[40][0]=1; tdarray[40][1]=3; tdarray[40][2]=5; tdarray[48][0]=2; tdarray[48][1]=3


其中40,48是用户的角色id,1,3,5是我希望存储在数据库中的访问权限。

可能是显而易见的解决方案,但如果您希望能够通过键(例如40)访问您的值,为什么不使用对象呢

var tdarray = {};

if ( ! tdarray['40']) tdarray['40'] = [];
tdarray['40'].push(22)

可能是显而易见的解决方案,但如果您希望能够通过键(例如40)访问您的值,为什么不使用对象呢

var tdarray = {};

if ( ! tdarray['40']) tdarray['40'] = [];
tdarray['40'].push(22)

可能是显而易见的解决方案,但如果您希望能够通过键(例如40)访问您的值,为什么不使用对象呢

var tdarray = {};

if ( ! tdarray['40']) tdarray['40'] = [];
tdarray['40'].push(22)

可能是显而易见的解决方案,但如果您希望能够通过键(例如40)访问您的值,为什么不使用对象呢

var tdarray = {};

if ( ! tdarray['40']) tdarray['40'] = [];
tdarray['40'].push(22)
要使用键40中的
push()
功能,还必须将该位置初始化为数组

var tdarray = []; 
tdarray[40] = [];
tdarray[40].push(22)

// It works now
alert(tdarray[40][0]);
在您提供的代码中:

    var tdarray = [];

    ... 

    // Check if it's an array before initialize
    if(!tdarray[this.name] instanceof Array) {
        tdarray[this.name] = []; // or tdarray[this.name] = new Array();
    }
    tdarray[this.name].push(tval);
要使用键40中的
push()
功能,还必须将该位置初始化为数组

var tdarray = []; 
tdarray[40] = [];
tdarray[40].push(22)

// It works now
alert(tdarray[40][0]);
在您提供的代码中:

    var tdarray = [];

    ... 

    // Check if it's an array before initialize
    if(!tdarray[this.name] instanceof Array) {
        tdarray[this.name] = []; // or tdarray[this.name] = new Array();
    }
    tdarray[this.name].push(tval);
要使用键40中的
push()
功能,还必须将该位置初始化为数组

var tdarray = []; 
tdarray[40] = [];
tdarray[40].push(22)

// It works now
alert(tdarray[40][0]);
在您提供的代码中:

    var tdarray = [];

    ... 

    // Check if it's an array before initialize
    if(!tdarray[this.name] instanceof Array) {
        tdarray[this.name] = []; // or tdarray[this.name] = new Array();
    }
    tdarray[this.name].push(tval);
要使用键40中的
push()
功能,还必须将该位置初始化为数组

var tdarray = []; 
tdarray[40] = [];
tdarray[40].push(22)

// It works now
alert(tdarray[40][0]);
在您提供的代码中:

    var tdarray = [];

    ... 

    // Check if it's an array before initialize
    if(!tdarray[this.name] instanceof Array) {
        tdarray[this.name] = []; // or tdarray[this.name] = new Array();
    }
    tdarray[this.name].push(tval);

你必须检查它是否已经是一个数组,如果它没有创建它

var tval = $(this).val();
       check=this.name;
if( tdarray[this.name]constructor !== Array){
 tdarray[this.name]=[]
}
          tdarray[this.name].push(tval);

你必须检查它是否已经是一个数组,如果它没有创建它

var tval = $(this).val();
       check=this.name;
if( tdarray[this.name]constructor !== Array){
 tdarray[this.name]=[]
}
          tdarray[this.name].push(tval);

你必须检查它是否已经是一个数组,如果它没有创建它

var tval = $(this).val();
       check=this.name;
if( tdarray[this.name]constructor !== Array){
 tdarray[this.name]=[]
}
          tdarray[this.name].push(tval);

你必须检查它是否已经是一个数组,如果它没有创建它

var tval = $(this).val();
       check=this.name;
if( tdarray[this.name]constructor !== Array){
 tdarray[this.name]=[]
}
          tdarray[this.name].push(tval);


您可以添加更多关于二维数组的详细信息吗。tdarray[40].push(22);在这段代码中,没有任何东西与jQuery相关。从技术上讲,这是一个纯javascript特性(不是真正的jQuery特性),而您的做法是错误的:简而言之,因为40是一个数字键,所以您必须首先将该索引声明为数组:
tdarray[40]=[]
然后在其中推送一个值:
tdarray[40]。推送(22)。也就是说,您的数组应该声明为:
var tdarray=[]。最后,我更愿意为这样的范围推荐一个对象:
var-tdobject={}
t对象[40]=[22]
也许可以给我们一个示例,说明您希望如何处理数据,我们可以建议一个好的JS解决方案不是多维数组。它是一个数组,其中一个元素是另一个(空)数组;使用
push
的下一行抛出异常,因为
tdarray[40]
未定义。您必须执行
tdarray[40]=[22]。以后可以推送新值
tdarray[40]这将成为一个md数组。我已经编辑了我的问题。你能添加更多关于二维数组的详细信息吗。tdarray[40].push(22);在这段代码中,没有任何东西与jQuery相关。从技术上讲,这是一个纯javascript特性(不是真正的jQuery特性),而您的做法是错误的:简而言之,因为40是一个数字键,所以您必须首先将该索引声明为数组:
tdarray[40]=[]
然后在其中推送一个值:
tdarray[40]。推送(22)。也就是说,您的数组应该声明为:
var tdarray=[]。最后,我更愿意为这样的范围推荐一个对象:
var-tdobject={}
t对象[40]=[22]
也许可以给我们一个示例,说明您希望如何处理数据,我们可以建议一个好的JS解决方案不是多维数组。它是一个数组,其中一个元素是另一个(空)数组;使用
push
的下一行抛出异常,因为
tdarray[40]
未定义。您必须执行
tdarray[40]=[22]。以后可以推送新值
tdarray[40]这将成为一个md数组。我已经编辑了我的问题。你能添加更多关于二维数组的详细信息吗。tdarray[40].push(22);在这段代码中,没有任何东西与jQuery相关。从技术上讲,这是一个纯javascript特性(不是真正的jQuery特性),而您的做法是错误的:简而言之,因为40是一个数字键,所以您必须首先将该索引声明为数组:
tdarray[40]=[]
然后在其中推送一个值:
tdarray[40]。推送(22)。也就是说,您的数组应该声明为:
var tdarray=[]。最后,我更愿意为这样的范围推荐一个对象:
var-tdobject={}
t对象[40]=[22]
也许可以给我们一个示例,说明您希望如何处理数据,我们可以建议一个好的JS解决方案不是多维数组。它是一个数组,其中一个元素是另一个(空)数组;使用
push
的下一行抛出异常,因为
tdarray[40]
未定义。您必须执行
tdarray[40]=[22]。以后你可以