无法从Javascript数组和未捕获的SyntaxError获取值:jquery中出现意外标识符

无法从Javascript数组和未捕获的SyntaxError获取值:jquery中出现意外标识符,javascript,c#,jquery,arrays,Javascript,C#,Jquery,Arrays,首先,我是Javascript新手,我使用的数组在运行时获得它的值,就像 var tablehash = [CS: "CS", tbl_master: "tbl_master"] 我必须获取数组中的值,以便与我尝试过的值进行比较 var valtocompare = tablehash ["CS"]; 但是它给了我错误,所以我已经手动测试了上面的数组 var tablehash = {CS: "CS", tbl_master: "tbl_master"} 并获取了正确的值 我的问题是,为什

首先,我是Javascript新手,我使用的数组在运行时获得它的值,就像

var tablehash = [CS: "CS", tbl_master: "tbl_master"]
我必须获取数组中的值,以便与我尝试过的值进行比较

var valtocompare = tablehash ["CS"];
但是它给了我错误,所以我已经手动测试了上面的数组

var tablehash = {CS: "CS", tbl_master: "tbl_master"}
并获取了正确的值

我的问题是,为什么我不能从具有
[]
作为开始和结束符号的数组中获取值,但我可以从具有
{}
作为开始和结束符号的数组中获取值

编辑:value
var tablehash=[CS:“CS”,tbl_master:“tbl_master”]。
tablehash[xx[0]]=xx[0]行获取在运行时的jquery中,它包含在
[]
中,只有我能做什么


请告诉我我做错了什么

未捕获的语法错误:jquery中出现意外标识符

因为我不能问新问题,所以我在这个线程中添加了新问题,因为下面提到的脚本在同一个Jquery库中

我正在从我的页面调用下面提到的
jQuery
库函数,但在计算发送的JSON字符串时,我得到了未捕获的语法错误:意外标识符

函数从页面调用为

function BindSearchedQueryData(JsonString) {

        $('.sqlbuild').loadSQB(JsonString);
    }
负载SQB

loadSQB: function (jsonstr) {
        var $tt = this[0];

        $('.sqlcolumn').remove();
        $('.sqlwhere').remove();
        $('.sqlgroup').remove();
        $('.sqlsort').remove();

        var j=eval('(' + jsonstr + ')');  //Getting Error in this line  

        var coldiv  =$(".addnewsqlcolumn");
        var sortdiv =$('.addnewsqlsort');
        var groupdiv=$('.addnewsqlgroup');
        var wherediv=$('.addnewsqlwhere');

        /*rebuild col data*/
        for(var i=0;i<j.columndata.length;i++){
            //j.columndata[i].columnslot, j.columndata[i].columnvalue
            coldiv[0].opts.onselect(j.columndata[i].columnslot,coldiv,{columnas:j.columndata[i].columnas}); 
        }
        /*rebuild sort data*/
        for(var i=0;i<j.sortdata.length;i++){
            //j.sortdata[i].columnslot, j.sortdata[i].columnas
            sortdiv[0].opts.onselect(j.sortdata[i].columnslot,sortdiv,{columnas:j.sortdata[i].columnas});           
        }
        /*rebuild group by data*/
        for(var i=0;i<j.groupdata.length;i++){
            //j.groupdata[i].columnslot, 
            groupdiv[0].opts.onselect(j.groupdata[i].columnslot,groupdiv,null);                         
        }
        /*rebuild where data*/
        for(var i=0;i<j.wheredata.length;i++){
            //j.wheredata[i].columnslot, j.wheredata[i].opslot,j.wheredata[i].chainslot,j.wheredata[i].columnvalue
            wherediv[0].opts.onselect(j.wheredata[i].columnslot,wherediv,{columnslot:j.wheredata[i].columnslot,opslot:j.wheredata[i].opslot,chainslot:j.wheredata[i].chainslot,columnvalue:j.wheredata[i].columnvalue});            

        }

    }
loadSQB:function(jsonstr){
var$tt=该[0];
$('.sqlcolumn').remove();
$('.sqlwhere').remove();
$('.sqlgroup').remove();
$('.sqlsort').remove();
var j=eval(“(“+jsonstr+”);//此行中出现错误
var coldiv=$(“.addnewsqlcolumn”);
var sortdiv=$('.addnewsqlsort');
var groupdiv=$('.addnewsqlgroup');
var wherediv=$('.addnewsqlwhere');
/*重建col数据*/

for(var i=0;iJavascript没有关联数组,即不能有关联数组

var tablehash=[CS:“CS”,tbl\u master:“tbl\u master”]

但是你可以

var tablehash={CS:“CS”,tbl_master:“tbl_master”}
,这是一个有效的对象

执行此操作后,可以使用
object.key
语法访问值

因此,
tablehash.CS
的值应该是
CS


PS-在ide/编辑器中使用linter。

Javascript没有关联数组,即不能有关联数组

var tablehash=[CS:“CS”,tbl\u master:“tbl\u master”]

但是你可以

var tablehash={CS:“CS”,tbl_master:“tbl_master”}
,这是一个有效的对象

执行此操作后,可以使用
object.key
语法访问值

因此,
tablehash.CS
的值应该是
CS


PS-在ide/编辑器中使用过梁。

Javascript中的
[]
{}
之间存在差异。
[]
中包含的值是数组中的值,
{}
中的值使
{}
成为javascript对象。 您可以像Javascript一样使用关联数组
{a:'苹果',b:'球'}
。 也可以将数组作为值
{a:[1,2],b:[3,4]}
。 所以你需要把你的散列格式设置为
var tablehash={CS:“CS”,tbl_master:“tbl_master”}
。 为了访问它,你像
tablehash['CS']或tablehash.CS

Javascript中的
[]
{}
之间存在差异。
[]
中包含的值是数组中的值,
{}
中的值使
{}
成为javascript对象。 您可以像Javascript一样使用关联数组
{a:'苹果',b:'球'}
。 也可以将数组作为值
{a:[1,2],b:[3,4]}
。 所以你需要把你的散列格式设置为
var tablehash={CS:“CS”,tbl_master:“tbl_master”}
。 为了访问它,你像
tablehash['CS']或tablehash.CS
回答我的第二个问题未捕获的语法错误:意外标识符

我传递给函数loadSQB的值是
Javascript
对象,因此我使用
JSON.stringify()
Javascript
对象转换为
JSON
字符串

loadSQB: function (jsonstr) {
    jsonstr=JSON.stringify(jsonstr); //Solution for the Question
    var $tt = this[0];

    $('.sqlcolumn').remove();
    $('.sqlwhere').remove();
    $('.sqlgroup').remove();
    $('.sqlsort').remove();

    var j=eval('(' + jsonstr + ')');  //Got Error in this line  

    var coldiv  =$(".addnewsqlcolumn");
    var sortdiv =$('.addnewsqlsort');
    var groupdiv=$('.addnewsqlgroup');
    var wherediv=$('.addnewsqlwhere');

    /*rebuild col data*/
    for(var i=0;i<j.columndata.length;i++){
        //j.columndata[i].columnslot, j.columndata[i].columnvalue
        coldiv[0].opts.onselect(j.columndata[i].columnslot,coldiv,{columnas:j.columndata[i].columnas}); 
    }
    /*rebuild sort data*/
    for(var i=0;i<j.sortdata.length;i++){
        //j.sortdata[i].columnslot, j.sortdata[i].columnas
        sortdiv[0].opts.onselect(j.sortdata[i].columnslot,sortdiv,{columnas:j.sortdata[i].columnas});           
    }
    /*rebuild group by data*/
    for(var i=0;i<j.groupdata.length;i++){
        //j.groupdata[i].columnslot, 
        groupdiv[0].opts.onselect(j.groupdata[i].columnslot,groupdiv,null);                         
    }
    /*rebuild where data*/
    for(var i=0;i<j.wheredata.length;i++){
        //j.wheredata[i].columnslot, j.wheredata[i].opslot,j.wheredata[i].chainslot,j.wheredata[i].columnvalue
        wherediv[0].opts.onselect(j.wheredata[i].columnslot,wherediv,{columnslot:j.wheredata[i].columnslot,opslot:j.wheredata[i].opslot,chainslot:j.wheredata[i].chainslot,columnvalue:j.wheredata[i].columnvalue});            

    }

}
loadSQB:function(jsonstr){
jsonstr=JSON.stringify(jsonstr);//问题的解决方案
var$tt=该[0];
$('.sqlcolumn').remove();
$('.sqlwhere').remove();
$('.sqlgroup').remove();
$('.sqlsort').remove();
var j=eval(“(“+jsonstr+”);//此行出错
var coldiv=$(“.addnewsqlcolumn”);
var sortdiv=$('.addnewsqlsort');
var groupdiv=$('.addnewsqlgroup');
var wherediv=$('.addnewsqlwhere');
/*重建col数据*/

对于(var i=0;i第二个问题的答案未捕获的语法错误:意外标识符

我传递给函数loadSQB的值是
Javascript
对象,因此我使用
JSON.stringify()
Javascript
对象转换为
JSON
字符串

loadSQB: function (jsonstr) {
    jsonstr=JSON.stringify(jsonstr); //Solution for the Question
    var $tt = this[0];

    $('.sqlcolumn').remove();
    $('.sqlwhere').remove();
    $('.sqlgroup').remove();
    $('.sqlsort').remove();

    var j=eval('(' + jsonstr + ')');  //Got Error in this line  

    var coldiv  =$(".addnewsqlcolumn");
    var sortdiv =$('.addnewsqlsort');
    var groupdiv=$('.addnewsqlgroup');
    var wherediv=$('.addnewsqlwhere');

    /*rebuild col data*/
    for(var i=0;i<j.columndata.length;i++){
        //j.columndata[i].columnslot, j.columndata[i].columnvalue
        coldiv[0].opts.onselect(j.columndata[i].columnslot,coldiv,{columnas:j.columndata[i].columnas}); 
    }
    /*rebuild sort data*/
    for(var i=0;i<j.sortdata.length;i++){
        //j.sortdata[i].columnslot, j.sortdata[i].columnas
        sortdiv[0].opts.onselect(j.sortdata[i].columnslot,sortdiv,{columnas:j.sortdata[i].columnas});           
    }
    /*rebuild group by data*/
    for(var i=0;i<j.groupdata.length;i++){
        //j.groupdata[i].columnslot, 
        groupdiv[0].opts.onselect(j.groupdata[i].columnslot,groupdiv,null);                         
    }
    /*rebuild where data*/
    for(var i=0;i<j.wheredata.length;i++){
        //j.wheredata[i].columnslot, j.wheredata[i].opslot,j.wheredata[i].chainslot,j.wheredata[i].columnvalue
        wherediv[0].opts.onselect(j.wheredata[i].columnslot,wherediv,{columnslot:j.wheredata[i].columnslot,opslot:j.wheredata[i].opslot,chainslot:j.wheredata[i].chainslot,columnvalue:j.wheredata[i].columnvalue});            

    }

}
loadSQB:function(jsonstr){
jsonstr=JSON.stringify(jsonstr);//问题的解决方案
var$tt=该[0];
$('.sqlcolumn').remove();
$('.sqlwhere').remove();
$('.sqlgroup').remove();
$('.sqlsort').remove();
var j=eval(“(“+jsonstr+”);//此行出错
var coldiv=$(“.addnewsqlcolumn”);
var sortdiv=$('.addnewsqlsort');
var groupdiv=$('.addnewsqlgroup');
var wherediv=$('.addnewsqlwhere');
/*重建col数据*/

对于(var i=0;它不是数组。如果您想要对象,请使用
{CS:“CS”,tbl_master:“tbl_master”}
,如果您想要数组,请使用
[“CS”,“tbl_master”]
[CS:“CS”,tbl_master:“tbl_master”]
只是无效语法。请使用来验证您的代码。这不是