利用js实现统计字符串数组中各字符串出现的次数,并将其格式化为对象数组。

1. 需求

  • 原始数组:

[‘包子’, ‘馒头’, ‘花卷’, ‘汤包’, ‘馒头’]

  • 将其格式化为:

[
{ name: ‘包子’, value: 1 },
{ name: ‘馒头’, value: 2 },
{ name: ‘花卷’, value: 1 },
{ name: ‘汤包’, value: 1 }
]

2. 实现

2.1 统计字符串数组中,各字符串出现的次数,构成哈希表

let arr = ["包子", "馒头", "花卷", "汤包", "馒头"];
let map = {};
// 遍历列表数据
for (let i = 0; i < arr.length; i++) {
  var name = arr[i];
  if (map[name]) {
    map[name] += 1;
  } else {
    map[name] = 1;
  }
}
console.log(map);

结果:
在这里插入图片描述

2.2 遍历哈希表,对其进行格式化

let resList = [];
// 遍历hash表
for (let name in map) {
  let item = {};
  item["name"] = name;
  item["value"] = map[name];
  resList.push(item);
}
console.log(resList);

结果:
在这里插入图片描述

3. 完整代码

let arr = ["包子", "馒头", "花卷", "汤包", "馒头"];
let map = {};
// 遍历列表数据
for (let i = 0; i < arr.length; i++) {
  var name = arr[i];
  if (map[name]) {
    map[name] += 1;
  } else {
    map[name] = 1;
  }
}
console.log(map);
let resList = [];
// 遍历hash表
for (let name in map) {
  let item = {};
  item["name"] = name;
  item["value"] = map[name];
  resList.push(item);
}
console.log(resList);


版权声明:本文为weixin_44109827原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。