在 JS 数组中推送带有变量的结构化字符串

Push structured string with variables in JS array

我正在尝试将带有变量的特定字符串推送到 JS 数组中。

到目前为止我的代码:

<script type="text/javascript">
    var id = "{$p.id}"+"-"+"{$p.id_val}";
    var price = "{$p.price}";
    var category = "{$p.category}";

    var full_line = "{ id: "+id+", price: "+price+", category: "+category+"},";

    console.log(full_line);
    myArray.push(full_line);
</script>

它工作正常,但如果在整行中我有这些符号,它就不起作用:{} 您可以在下面看到没有这些符号的行,如果我这样保留它就可以正常工作。

var full_line = "id: "+id+", price: "+price+", category: "+category;

但我需要这些符号,因为我必须在 js 跟踪代码中传递完全相同的结构。如果包含符号 { },则该页面已损坏。有什么方法或 'trick' 可以将它们包含在数组元素中并推送它们吗?

因为你不能 "push" 进入一个对象,你可以像这样轻松地做到这一点:

<script type="text/javascript">
    var id = "{$p.id}"+"-"+"{$p.id_val}";
    var price = "{$p.price}";
    var category = "{$p.category}";

    var full_line = {};
    full_line.id = id;
    full_line.price = price;
    full_line.category = category;

    console.log(full_line);
    myArray.push(full_line);
</script>

如果你需要它作为一个字符串,你可以像我看到的那样把它当作一个对象,然后通过执行以下操作将它转换为字符串:JSON.stringify(full_line)