import { pinyin } from 'pinyin-pro';

/**
 * @description 短横线字符串转驼峰
 * @param str
 */
export function lineToUppercase(str) {
  function upper(all, letter) {
    return letter.toUpperCase();
  }
  return str.replace(/-(\w)/g, upper);
}

/**
 * 将城市分组
 * @param cities
 */
export function groupCitiesByInitial(cities) {
  var cityGroups = {};
  cities.forEach(function (city) {
    // 获取城市名称的拼音首字母
    var initial = getFirstWord(city.address);

    // 按首字母分组
    if (!cityGroups[initial]) {
      cityGroups[initial] = [];
    }
    // 将整个地址信息保存
    cityGroups[initial].push(city);
  });
  // 按字母顺序排序分组
  return Object.keys(cityGroups).sort() // 对首字母进行字母排序
  .reduce(function (sortedGroups, initial) {
    sortedGroups[initial] = cityGroups[initial];
    return sortedGroups;
  }, {});
}

/**
 * 获取拼音首字母
 * @param str
 */
function getFirstWord(str) {
  if (!str) {
    return '';
  }
  return pinyin(str, {
    pattern: "first",
    toneType: "none"
  })[0].toUpperCase();
}