Javascript无法从变量识别数组

时间:2018-09-03 09:27:42

标签: javascript associative-array

我有一个来自外部来源的数组,除非我从日志背面复制并粘贴,否则Javascript无法识别它。

因此,例如,以下代码将为 outside 输出一个字符串而不是一个数组,但是如果我从日志中为 outside 复制了确切的输出并为其分配了它,手动添加到新变量 copyfromlog ,它将作为数组输出。

var outside = Drupal.settings.map.loc_json;

// Directly copied from output of previous
var copyfromlog = [
  [
    "<div class='test china'><h2>Fake School</h2><hr><p>Lorem Ipsum.</p></div>",
    54.345014,
    -1.265579,
    "school.png",
  ],
  [
    "<div class='test europe'><h2>Test School</h2><hr><p>Lorem Ipsum.</p></div>",
    53.345014,
    -6.265579,
    "school.png",
  ],
];

console.log(outside);

console.log(copyfromlog);

为什么一个记录数组,而另一个记录字符串?如果内容相同,为什么会发生这种情况? Console Log

1 个答案:

答案 0 :(得分:0)

Eval是解决方案。

var outside = eval(Drupal.settings.map.loc_json);

这会将变量视为数组而不是字符串。