js实现数组的排序和分组
2024-10-12 10:06:46
问题:
data=[1,1,1,1,2,2,2,2,5,5,5,8,8,8,2,2,2,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4]
怎么把值为1,2,3,4,5,8的数据分成6个数组存储形如
[[1,1,1,1],[2,2,2,2],[3,3,3,3,3,3,3,3,3,3],[4,4,4,4,4,4,4],[5,5,5],[8,8,8]];
解答:
<script>
var $arr=[1,1,1,1,2,33,44,12,3,4,4,4,4,4,6,6,6,6,6,6,6,6,6,7,7,7,7,7,123,34,12,2,2,133,33];
//先进行排序
$arr=$arr.sort(function(a,b){
return a-b;
})
var hash={};
var arr=[];
var n=-1;
for(var i=0;i<$arr.length;i++){
if(!hash[$arr[i]]){
n++;
hash[$arr[i]]=true;
arr[n]=[];
};
arr[n].push($arr[i]);
}
console.log(arr);
</script>
可以利用原型做进一步的封装
Array.prototype.sortGroup=function(){
var arr=[],hash={},result=[],n=-1,len=this.length;
arr=this.sort(function(a,b){
return a-b;
})
for(var i=0;i<len;i++){
if(!hash[arr[i]]){
n++;
hash[arr[i]]=true;
result[n]=[];
};
result[n].push(arr[i]);
}
return result;
}
var a=[1,2,3,3,3,3,3,3,11,23,23,23,11];
console.log(a.sortGroup()) //
结果:[[1],[2],[3,3,3,3,3,3],[11,11],[23,23,23]]
最新文章
- mysql中的行转列
- Chrome开发者工具不完全指南(二、进阶篇)
- 你的 mixin 兼容 ECMAScript 5 吗
- Android开发学习总结(五)——Android应用目录结构分析
- httpwebrequest 服务器提交了协议冲突. section=responsestatusline
- 【转】Visual Studio项目相对路径的设置,实用
- Axis2与Web项目整合
- Elasticsearch简单介绍
- linux+nginx+tomcat负载均衡,实现session同步
- 欧拉计划之Largest palindrome product
- qt下面例子学习(部分功能)
- docker 现实---联网多台物理主机,容器桥到物理网络(三)
- 谷歌搜索技巧(转)https://www.runningcheese.com/google
- 洛谷P5245 【模板】多项式快速幂(多项式ln 多项式exp)
- 使用promise对象封装一个ajaxGet函数
- PHP - 脚本退出(包括异常退出),执行指定代码
- HDMI 电视 点对点 桌面超出屏幕
- Spring Boot 中修改端口和上下文路径
- spring web中完成单元测试
- linux下composer+laravel随笔