在 <script> 内访问 Nunjucks 模板中的数组

Accessing arrays in Nunjucks template within <script>

我在服务器端有一个数组,每 10 分钟将数字 1 添加一次。例如[1, 1, 1, 1....]

我按如下方式将其发送到模板(data() 是我上面示例中的数组):

router.get('/', (req, res) => {
  return res.render('index', {
    results: data(),
  });
});

我在模板上有一个呈现图形的脚本。为此,数组需要可在脚本中访问。

当我通过以下方式访问数组时:

var results = "{{ results }}";

数组最终如下:

["1, 1, 1, 1"]

我需要不带双引号的数组。这可能吗?

[1, 1, 1, 1]

您可以在服务器或客户端上更改它 - 我想说让我们在客户端上进行吧。

整个数组由 1 个点组成,所有值都用逗号分隔。
我们首先使用 (["1, 1, 1, 1"][0]) 获取数据块 - 这将 return 只是数组中包含所有数据的第一个位置。

然后我们清除所有空格 (.replace(/\s/g,'')。

把它变成一个真正的数组(split(","))。

然后将每个字符串数字转换为真实数字 (.map(function(e){return Number(e);}))

删除:.map(function(e){return Number(e);}) 如果你不关心数字是否是字符串。

var results = ["1, 1, 1, 1"][0];
var result = results.replace(/\s/g,'').split(",").map(function(e){return Number(e);});
console.log(result);