无法从Javascript数组获取值和未捕获的语法错误:jquery中的意外标识符

Raj*_*esh 0 javascript c# arrays jquery

首先,我是Javascript的新手.我正在使用一个在运行时获取其值的数组

var tablehash = [CS: "CS", tbl_master: "tbl_master"]
Run Code Online (Sandbox Code Playgroud)

我必须获取数组中的值以便与我尝试过的值进行比较

var valtocompare = tablehash ["CS"];
Run Code Online (Sandbox Code Playgroud)

但是它给了我错误,所以我手动测试了上面的数组

var tablehash = {CS: "CS", tbl_master: "tbl_master"}
Run Code Online (Sandbox Code Playgroud)

并获取正确的值

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

编辑:在运行期间var tablehash = [CS: "CS", tbl_master: "tbl_master"].tablehash[xx[0]]=xx[0];我的jquery中的行获取值,它只包含[]我可以做的事情


请有人指出我做错了什么.

未捕获的SyntaxError:jquery中的意外标识符问题

我可以问一个新问题我在这个帖子中添加了我的新问题,因为下面提到的脚本在同一个Jquery库中.

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

从页面调用的函数

function BindSearchedQueryData(JsonString) {

        $('.sqlbuild').loadSQB(JsonString);
    }
Run Code Online (Sandbox Code Playgroud)

loadSQB

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});            

        }

    }
Run Code Online (Sandbox Code Playgroud)

请大家指出我这里出了什么问题


Swa*_*iri 5

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

var tablehash = [CS: "CS", tbl_master: "tbl_master"].

但你可以拥有

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

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

所以,价值tablehash.CS就是CS.

PS - 在你的ide /编辑器中使用linter.