题目1:
["# a", "## b", "## c", "### d", "# e"]
输出: [{hn: "1", title: "a"}
{hn: "1.1", title: "b"}
{hn: "1.2", title: "c"}
{hn: "1.21", title: "d"}
{hn: "2", title: "e"}]
function formatArr(arr) {
let result = [];
let floor = 0;
for(let i = 0; i < arr.length; i++) {
const sub = arr[i].split(" ");
const first = sub[0];
const last = sub [1];
if(!first || !last || first.indexOf("#") == -1) {
alert("数据格式有误");
}
const precentL = first.length;
let precent = 1 / Math.pow(10, precentL - 1) // 幂乘
if( precent < 1 ) {
floor = floor + precent;
}
if(precentL == 1) {
floor = Math.floor(floor) + 1;
}
result.push({
hn: floor.toFixed(precentL - 1),
title: last
})
}
return result;
}
console.log(formatArr(["# a", "# g", "## b", "## c", "### d", "## e", "# f"]))
console.log(formatArr(["# a", "## b", "## c", "### d", "# e"]))
console.log(formatArr(["# a", "# b", "# c", "### d", "## e", "# f"]))