Javascript字符串开始相等

时间:2015-08-20 12:07:03

标签: javascript jquery

我有一个对象数组,每个对象都有属性filename(string):

我想将这些对象(在那些文件名属性上)与从$ sign开始到最后一次出现的相同命名进行分组。

所以我想实现这个grupation(每个组都应该是新数组):

blue$
blue$_35    

blue_paint$
blue_paint$_35  
blue_paint$_55

01_red_carper_floor$
01_red_carper_floor$_and_roof

01_red$ 

green_car$

有些对象会有多个,而有些对象会保持单个。

我正在使用javascript和jquery。

我发现了一个类似的问题,但它并不完全相同:

Find the longest common starting substring in a set of strings

1 个答案:

答案 0 :(得分:1)

JSFiddle

var objects = [
    {filename:"green$1"},
    {filename:"green$2"},
    {filename:"green$3"},
    {filename:"green$4"},
    {filename:"blue$1$1"},
    {filename:"blue$1"},
    {filename:"red$1"},
    {filename:"green$5"},
]

var groups = [];

for (var i = 0; i < objects.length; i++){
    var filename = objects[i].filename
    var n = filename.lastIndexOf("$");
    var groupName = filename.substring(0, n);
    if (groups[groupName] != undefined)
        groups[groupName].push(objects[i]);
    else {
        groups[groupName] = [];
        groups[groupName].push(objects[i]);
    }
}

console.log(groups);