Javascript字符串开始相等

Javascript字符串开始相等,javascript,jquery,Javascript,Jquery,我有一个对象数组,每个对象都有属性文件名(字符串): 我想对这些对象(在那些filename属性上)进行分组,从$sign的开始到最后一次出现,使用相同的名称 因此,我希望实现这一目标(每组应为新阵列): 有些对象将有多个,而有些对象将保持单个 我正在使用javascript和jquery 我发现了一个类似的问题,但并不完全相同: var对象=[ {filename:“绿色$1”}, {filename:“绿色$2”}, {filename:“绿色$3”}, {filename:“绿色$4”}

我有一个对象数组,每个对象都有属性文件名(字符串):

我想对这些对象(在那些filename属性上)进行分组,从$sign的开始到最后一次出现,使用相同的名称

因此,我希望实现这一目标(每组应为新阵列):

有些对象将有多个,而有些对象将保持单个

我正在使用javascript和jquery

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

var对象=[
{filename:“绿色$1”},
{filename:“绿色$2”},
{filename:“绿色$3”},
{filename:“绿色$4”},
{filename:“蓝色$1$1”},
{filename:“蓝色$1”},
{filename:“红色$1”},
{filename:“绿色$5”},
]
var组=[];
对于(var i=0;i
您可以将数组添加到小提琴或其他东西中吗?您可以使用上次出现的
“$”
来执行此操作。然后可以使用该切片将对象分配到正确的数组。
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$
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);