繁体   English   中英

使用lodash在JavaScript数组中进行字符串操作

[英]String manipulation in JavaScript array using lodash

我有一个JavaScript数组,如下所示:

var arr = ["[Dim1].[Mem1].&[1]",
           "[Dim2].[Mem1].&[2]",
           "[Dim1].[Mem1].&[5]",
           "[Dim2].[Mem1].&[77]",
           "[Dim3].[Mem1].&[1]"
          ]

我想要这种格式的输出:

{
    [Dim1].[Mem1].&[1], [Dim1].[Mem1].&[5]
},
{
     [Dim2].[Mem1].&[2], [Dim2].[Mem1].&[77]
},
{
     [Dim3].[Mem1].&[1]"]
}

我们的想法是根据'。&'拆分每个值,然后按结果[0]分组。

我能够做到这一点:

  1. 循环遍历数组中的所有项目,然后将它们拆分为。&
  2. 基于[dim]。[mem]组合创建另一个列表。 在我们的例子中,列表将包含[Dim3]。[Mem1],[Dim1]。[Mem1],[Dim2]。[Mem1]。
  3. 现在有两个循环 - 一个用于唯一列表中的每个项目,一个用于原始列表中的每个项目并检查项目是否是原始列表包含唯一列表中的当前项目然后形成字符串。

如何使用“lodash”或任何其他基于JS的库来实现这一点,这将减少代码并使方法紧凑?

实际上,实际上:

_.chain(arr)
.invoke("split", ".&")
.groupBy(0)
.map(function(els) {
    return "{\n\t"+ _.invoke(els, "join", ".&").join(", ") + "\n}";
})
.value().join(",\n");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM