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