javascript统计数组中各个元素的个数

qq_29489067 2015-07-02 03:03:45
describe('practice-2-3', function() {

var collection = [
"a", "a", "a",
"e", "e", "e", "e", "e", "e", "e",
"h", "h", "h", "h", "h", "h", "h[3]", "h", "h",
"t", "t-2", "t", "t", "t", "t", "t", "t", "t[10]",
"f", "f", "f", "f", "f", "f", "f", "f", "f",
"c:8",
"g", "g", "g", "g", "g", "g", "g",
"b", "b", "b", "b", "b", "b",
"d-5"
];

it("把A集合中相同的元素统计出数量", function() {
var result = count_same_elements(collection);

expect(result).toEqual([
{name: "a", summary: 3},
{name: "e", summary: 7},
{name: "h", summary: 11},
{name: "t", summary: 19},
{name: "f", summary: 9},
{name: "c", summary: 8},
{name: "g", summary: 7},
{name: "b", summary: 6},
{name: "d", summary: 5}
]);
});
});


//怎样统计d-5,c:8,t[10]这些元素的个数?需要用到什么方法?
...全文
1510 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2015-07-02
  • 打赏
  • 举报
回复

  var collection = [
    "a", "a", "a",
    "e", "e", "e", "e", "e", "e", "e",
    "h", "h", "h", "h", "h", "h", "h[3]", "h", "h",
    "t", "t-2", "t", "t", "t", "t", "t", "t", "t[10]",
    "f", "f", "f", "f", "f", "f", "f", "f", "f",
    "c:8",
    "g", "g", "g", "g", "g", "g", "g",
    "b", "b", "b", "b", "b", "b",
    "d-5"
  ];
  var re = {};
  for(var i=0,v,l = collection.length; v = collection[i],i<l; i++)
  {
    var rv = /^([a-z]+)(?:.+?(\d+))?/i.exec(v);
	if (!re[rv[1]])
		re[rv[1]] = 0;
	re[rv[1]] += rv[2] ? parseInt(rv[2], 10) : 1;
  }
  console.log(re);

87,955

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧