【问题标题】:String manipulation in JavaScript array using lodash使用 lodash 在 JavaScript 数组中进行字符串操作
【发布时间】:2014-05-09 12:23:24
【问题描述】:

我有一个如下所示的 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 的库来减少代码并使方法紧凑?

【问题讨论】:

  • 您是否尝试过使用任何其他库?您能与我们分享您的尝试吗?

标签: javascript jquery regex handlebars.js lodash


【解决方案1】:

从字面上看,实际上:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 2016-12-02
    • 2016-06-07
    • 2013-06-20
    相关资源
    最近更新 更多