Liquid 如何计算数组中的匹配元素?
我想取一个数组,确定其中有多少匹配元素,然后对它们进行计数,以确定哪些元素具有最多的相同元素 例如:Liquid 如何计算数组中的匹配元素?,liquid,Liquid,我想取一个数组,确定其中有多少匹配元素,然后对它们进行计数,以确定哪些元素具有最多的相同元素 例如: {% assign variable = "Cats|Dogs|Mice|Cats|Cats" | split:'|' %} {% for v in variable %} // Da-da-da, magic happens here, count matching elements. {% endfor %} {{ mostCommon }} // Return the mo
{% assign variable = "Cats|Dogs|Mice|Cats|Cats" | split:'|' %}
{% for v in variable %}
// Da-da-da, magic happens here, count matching elements.
{% endfor %}
{{ mostCommon }} // Return the most common element in array being Cats.
以前有人这样做过吗?我只是一个设计师,所以我不能给出一个更好的例子:)所以我有点犹豫是否要和你分享这个。。特别是因为你非常清楚地表明你“只是”一个设计师(而且可能不想涉及技术细节)。但既然你问了,这是我的解决方案
{% assign array = "Cats|Dogs|Mice|Cats|Cats|Mice|Mice" | split:'|' %}
{% capture mostCommonString %}{% include most-occurences array=array %}{% endcapture %}
{% assign mostCommon = mostCommonString | split: "|" %}
{{ mostCommon | join: ", " }}
看起来很简单,对吧?不。您需要在\u include
文件夹中使用以下代码来启动{%include%}
:
\u包括/大多数事件
这是主要的算法。基本上它:
|
作为分隔符。我正在研究使用&
,可以使用|escape
过滤器对其进行转义,但我不认为这是一个问题
不幸的是,为了帮助
{%capture%}
我必须删除所有的空格,所以我有点犹豫是否要与您分享这一点。。特别是因为你非常清楚地表明你“只是”一个设计师(而且可能不想涉及技术细节)。但既然你问了,这是我的解决方案
{% assign array = "Cats|Dogs|Mice|Cats|Cats|Mice|Mice" | split:'|' %}
{% capture mostCommonString %}{% include most-occurences array=array %}{% endcapture %}
{% assign mostCommon = mostCommonString | split: "|" %}
{{ mostCommon | join: ", " }}
看起来很简单,对吧?不。您需要在\u include
文件夹中使用以下代码来启动{%include%}
:
\u包括/大多数事件
这是主要的算法。基本上它:
|
作为分隔符。我正在研究使用&
,可以使用|escape
过滤器对其进行转义,但我不认为这是一个问题
不幸的是,为了帮助
{%capture%}
我必须删除所有的空格,所以我有点犹豫是否要与您分享这一点。。特别是因为你非常清楚地表明你“只是”一个设计师(而且可能不想涉及技术细节)。但既然你问了,这是我的解决方案
{% assign array = "Cats|Dogs|Mice|Cats|Cats|Mice|Mice" | split:'|' %}
{% capture mostCommonString %}{% include most-occurences array=array %}{% endcapture %}
{% assign mostCommon = mostCommonString | split: "|" %}
{{ mostCommon | join: ", " }}
看起来很简单,对吧?不。您需要在\u include
文件夹中使用以下代码来启动{%include%}
:
\u包括/大多数事件
这是主要的算法。基本上它:
|
作为分隔符。我正在研究使用&
,可以使用|escape
过滤器对其进行转义,但我不认为这是一个问题
不幸的是,为了帮助
{%capture%}
我必须删除所有的空格,所以我有点犹豫是否要与您分享这一点。。特别是因为你非常清楚地表明你“只是”一个设计师(而且可能不想涉及技术细节)。但既然你问了,这是我的解决方案
{% assign array = "Cats|Dogs|Mice|Cats|Cats|Mice|Mice" | split:'|' %}
{% capture mostCommonString %}{% include most-occurences array=array %}{% endcapture %}
{% assign mostCommon = mostCommonString | split: "|" %}
{{ mostCommon | join: ", " }}
看起来很简单,对吧?不。您需要在\u include
文件夹中使用以下代码来启动{%include%}
:
\u包括/大多数事件
这是主要的算法。基本上它:
|
作为分隔符。我正在研究使用&
,可以使用|escape
过滤器对其进行转义,但我不认为这是一个问题
不幸的是,必须删除所有空格,以帮助
{%capture%}
在一行中可以执行以下操作
{% assign array = "Cats|Dogs|Mice|Cats|Cats|Mice|Mice|Dog" | split: '|' %}
{% assign grouped_elements = array | group_by: tag | sort: 'size' | reverse %}
{% assign highest_count = grouped_elements[0].size %}
{% for elem in grouped_elements %}
{% if elem.size == highest_count %}
{{ elem.name }} {{ elem.size }}
{% else %}
{% break %}
{% endif %}
{% endfor %}
基本上,我们正在做的是:
Group_by
大小
键对其排序以下是您可以在一行中完成的操作
{% assign array = "Cats|Dogs|Mice|Cats|Cats|Mice|Mice|Dog" | split: '|' %}
{% assign grouped_elements = array | group_by: tag | sort: 'size' | reverse %}
{% assign highest_count = grouped_elements[0].size %}
{% for elem in grouped_elements %}
{% if elem.size == highest_count %}
{{ elem.name }} {{ elem.size }}
{% else %}
{% break %}
{% endif %}
{% endfor %}
基本上,我们正在做的是:
Group_by
大小
键对其排序