为什么{“ foo”:“ bar”}与{foo:“ bar”}不同,其中foo =“ foo”?

时间:2019-08-02 13:11:20

标签: javascript json types datatables

为什么myVar1myVar2在JavaScript中不同?

var myVar1 = {"foo" : "bar"};
var foo = "foo";
var myVar2 = {foo : "bar"};
myVar1 == myVar2 // gives false

此外,如果我尝试将foo显式转换为String(例如下面的示例),则会产生错误并声称“:”不应在此处(以下示例)。

var myVar2 = {String(foo) : "bar"};

another answer中,我读到{x: y}是一个对象常量,但是找不到关于我的问题的很多信息。

我正试图做的就是在DataTables中插入可变数量的列。我正在获取指定列类型和名称的JSON。然后我这样做:

// Send AJAX request, save result to var parsed
var columns = [];
for (var i=0; i < parsed.length; i++) {
  var col = { "mData" : parsed[i].name};
  columns.push(col);
});
// Create Datatable
var table = $('#importTable').DataTable({
  "sAjaxSource": "/importColumns",
  "sAjaxDataProp": "",
  "order": [[ 0, "asc" ]],
  "aoColumns": columns
});

以上工作原理,但有时我想使用与mData不同的字符串。 在这种情况下:

// JSON object has 2 fields - type and name
var col = { parsed[i].type : parsed[i].name};

但这似乎不起作用。 DataTables给我警报,例如:

  

DataTables警告:表id = importTable-请求的未知参数'0'用于第0行第0列。

当我尝试显式转换为String时:

var col = { String(parsed[i].type) : parsed[i].name};

我得到:

  

未捕获的SyntaxError:意外令牌:

0 个答案:

没有答案