是否可以用值迭代填充树枝数组?
{% for question in questions %}
{% set multipleChoiceArray = [] %}
{% for multipleChoice in question.multipleChoiceAnswers %}
{% set multipleChoiceArray = multipleChoiceArray|merge( multipleChoice.answerText ) %}
{% endfor %}
{% endfor %}
问题出在multipleChoiceArray|merge(multipleChoice.answerText)
当我尝试使用key = loop.index(例如
)传递数组时{% set multipleChoiceArray = multipleChoiceArray|merge({"loop['index']":"multipleChoice['answerText']"}) %}
它有效但数组包含字符串“[”loop ['index']“:”multipleChoice ['answerText']“]”
当我尝试传递变量时:
{% set multipleChoiceArray = multipleChoiceArray|merge({loop.index:multipleChoice.answerText}) %}
异常是:哈希键后面必须跟冒号(:)。意外的标记“标点符号”的值“。” (“标点符号”预期值为“:”)
所以我无法将“multipleChoice.answerText”值“推”到“multipleChoiceArray”
任何提示如何可行? 我只想收集所有可能的答案,然后检查答案是否在该数组中并计算并显示
答案 0 :(得分:44)
merge的参数必须是一个数组或对象,以将其与现有数据合并。所以把它写成一个带有一个元素的数组。
{% set multipleChoiceAnswerText = multipleChoice.answerText %}
{% set multipleChoiceArray = multipleChoiceArray|merge([multipleChoice.answerText]) %}