我希望将您可以在 Shopify 主题设置中编辑的字符串转换为 Liquid 文件中的对象键值数组。
例如:
var text = 'key1:value1,key2:value2,anotherKey:anotherValue'
in to:
var array = [{key1: value1}, {key2: value2}, {anotherKey: anotherValue}]
Run Code Online (Sandbox Code Playgroud)
每个对象将在字符串中用“,”分隔,键将位于“:”的左侧,值位于右侧。
我需要将其写入文件中theme.liquid,但不确定如何实现这一点。非常感激任何的帮助。
到目前为止我只做到了:
{% assign text = 'key1:value1,key2:value2,anotherKey:anotherValue' %}
{% assign splitText = text | split: ',' %}
{% assign array = '' | split: '' %}
{% for data in splitText %}
{% assign key = data | split: ':' | first %}
{% assign value = data | split: ':' | last %}
{% assign array = array | concat: key | append: ':' | concat: value %}
{% endfor %}
{{ array }}
Run Code Online (Sandbox Code Playgroud)
在 Liquid 中不可能创建关联数组或具有命名索引的数组。但是,作为解决方法,您可以创建 2 个数组。将一个数组的相同索引视为键,将其他数组视为值。
示例实现如下所示
{% assign text = 'key1:value1,key2:value2,anotherKey:anotherValue' %}
{% assign objArr = text | split: ',' %}
{% assign keyArr = ''%}
{% assign valArr = ''%}
{% for obj in objArr %}
{% assign key = obj | split: ':' | first %}
{% assign value = obj | split: ':' | last %}
{% assign keyArr = keyArr| append: ',' | append: key %}
{% assign valArr = valArr| append: ',' | append: value %}
{% endfor %}
{% assign keyArr = keyArr | remove_first: ',' | split: ',' %}
{% assign valArr = valArr | remove_first: ',' | split: ',' %}
{% for obj in objArr %}
{{keyArr[forloop.index0]}} : {{valArr[forloop.index0]}}
<br/>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
上面的代码做了基本的工作。不要忘记比较两个数组长度,以确定所有键值对是否都按照逻辑完美创建。
| 归档时间: |
|
| 查看次数: |
9129 次 |
| 最近记录: |