Javascript 如何在字符串数组中找到sting的唯一部分?

Javascript 如何在字符串数组中找到sting的唯一部分?,javascript,underscore.js,Javascript,Underscore.js,我有一个地址数组: 1号公寓,某条路,城镇,邮编 2号公寓,某条路,城镇,邮编 3号公寓,一些建筑物,一些道路,城镇,邮政编码 4号公寓,某条路,城镇,邮编 或者像这样: modelList=[{unique_address: "Some Road Town Postcode", changing_info: "Flat 1"}, {unique_address: "Some Road Town Postcode", changing_info: "Flat 2"}, {unique_addre

我有一个地址数组:

  • 1号公寓,某条路,城镇,邮编
  • 2号公寓,某条路,城镇,邮编
  • 3号公寓,一些建筑物,一些道路,城镇,邮政编码
  • 4号公寓,某条路,城镇,邮编
  • 或者像这样:

    modelList=[{unique_address: "Some Road Town Postcode", changing_info: "Flat 1"},
    {unique_address: "Some Road Town Postcode", changing_info: "Flat 2"},
    {unique_address: "Some Road Town Postcode", changing_info: "Flat 45"}];
    
  • 1号公寓,城镇,邮编
  • 2号公寓,城镇,邮编
  • 3号公寓,一些建筑物,城镇,邮编
  • 4号公寓,城镇,邮编
  • 我不知道字符串的唯一或相同部分有多长

    我希望能够计算出地址的唯一部分,并将其显示一次,而其他部分则分开显示,因此它将如下所示:

    modelList=[{unique_address: "Some Road Town Postcode", changing_info: "Flat 1"},
    {unique_address: "Some Road Town Postcode", changing_info: "Flat 2"},
    {unique_address: "Some Road Town Postcode", changing_info: "Flat 45"}];
    
    某些道路、城镇、邮政编码(第二个示例中为城镇、邮政编码)

  • 公寓1
  • 公寓2
  • 3号公寓,一些大楼
  • 公寓4

  • 我尝试过使用一个对象,然后使用u.pull和u.uniq来测试该项是否唯一,但如果上面的第3项与其他项不一致,则测试失败。

    假设分隔符始终是逗号,下面是一个可能的解决方案

  • 将每个数组元素转换为元素数组
  • 为每个地址创建一个具有两个属性的模型{unique_address:,changing_info::}。unique_address属性由数组的最后三个元素组成
  • 有这样一份清单,你有几种方法可以得到你想要的东西

    我建议使用
    .groupBy(list,iterator)
    ,它内置于underline.js中 像这样:

    _.groupBy(modelList, function(element) {
        return element.unique_address;
    });
    
    就这些


    有关groupby使用的更多信息,请参见

    ,除非您的输入经过了非常好的处理,否则一旦一个项目的格式与所有其他项目稍有不同,就会开始失败。你确定这是个好主意吗?你的输入来自哪里?你能边走边建吗,或者它是一次全部抓取的?它来自一个数据库-问题是对象没有对齐-如果有解决方案,我可以一次处理一个-它们都是并且总是用逗号分隔吗?@DanieleB是的-没错。问题是我不知道它是最后三个元素-在某些情况下,它可能是最后三个元素另外四个是最后两个。你应该想一想:你是如何意识到他们是最后三个、两个或四个。。。?试着分析它,这是你为了理解哪个是固定地址而采取的步骤,然后我们将试着把它翻译成机器可以理解的语言:-)这就是问题的重点-我如何找到字符串中唯一的部分,而不是普通部分!如果你举一些例子,我可以帮助你。在您发布的示例中,模式始终相同,也就是说,最后三个单元格是地址的固定部分。还有哪些案子?你好,有火星的消息吗?