Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery根据连字符前的初始单词对列表进行排序_Javascript_Jquery - Fatal编程技术网

Javascript JQuery根据连字符前的初始单词对列表进行排序

Javascript JQuery根据连字符前的初始单词对列表进行排序,javascript,jquery,Javascript,Jquery,我有一个从数据库中生成的列表 bajaj-4S-champion bajaj-avenger audi-a3-diesel audi-a3-petrol 等等。这只是一个例子,首字母可以是任何类似bajaj的,也可以是雪佛兰。我想对列表进行动态排序,这样所有以相同首字母开头的列表都应该在单独的div中。在本例中,bajaj-4S-champion和 bajaj复仇者和奥迪应该分开。如何在连字符之前比较首字母并将其分离出来?您可以先对数据进行排序,然后将其分组到对象中进行进一步处理 var数组

我有一个从数据库中生成的列表

bajaj-4S-champion
bajaj-avenger
audi-a3-diesel
audi-a3-petrol
等等。这只是一个例子,首字母可以是任何类似bajaj的,也可以是雪佛兰。我想对列表进行动态排序,这样所有以相同首字母开头的列表都应该在单独的div中。在本例中,bajaj-4S-champion和
bajaj复仇者和奥迪应该分开。如何在连字符之前比较首字母并将其分离出来?

您可以先对数据进行排序,然后将其分组到对象中进行进一步处理

var数组=['bajaj-4S-champion'、'bajaj avenger'、'audi-a3-diesel'、'audi-a3-汽油机'],
对象={};
array.sort();
array.forEach(函数(a){
var key=a.split('-')[0];
对象[键]=对象[键]| |[];
对象[键]。推送(a);
});

document.write(''+JSON.stringify(object,0,4)+'')谢谢,我一般会尝试一下,避免使用jQuery进行这种数据操作是最好的做法。这种事情可以在普通JavaScript中完成,这样做可以消除依赖性。除了String.split之外,还有一些非常(非常)有用的数组函数,比如filter、map、reduce、sort、join和forEach。