数据源
let arrList = {
name: "zhangsAnZ",
age: 3900,
show: true,
address: "ADHFUFRUfjshafoshf166",
children: [{
id: 100,
title: "66611111123fjslfsgAFFOFFpPPZ"
},
{
id: 300,
title: "111122222223fjslfQAAAAAXZCDEFFFpPPZZ"
}
]
}
方法一
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title></title>
</head>
<body>
<script>
let arrList = {
name: "zhangsAnZ",
age: 3900,
show: true,
address: "ADHFUFRUfjshafoshf166",
children: [{
id: 100,
title: "66611111123fjslfsgAFFOFFpPPZ--"
},
{
id: 300,
title: "111122222223fjslfQAAAAAXZCDEFFFpPPZZ"
}
]
}
// 入口函数
function mainApp(item) {
var strChar = ""
function mainAppChild(arr) {
for (let key in arr) {
if (typeof arr[key] != 'object') {
strChar += arr[key]
} else {
mainAppChild(arr[key])
}
}
}
mainAppChild(item)
return stringFn(strChar)
}
// 处理最终字符串
function stringFn(str) {
let obj = {};
str = str.toString().toLocaleLowerCase()
for (i = 0; i < str.length; i++) {
key = str[i];
if (obj[key]) {
obj[key]++;
} else {
obj[key] = 1;
}
}
return objSort(obj)
}
// 对象排序
function objSort(obj) {
//得到按键值升序排列的键数组
let keyArr = Object.keys(obj).sort((a, b) => {
return obj[b] - obj[a]; //降序
});
let myMap = new Map();
for (let i = 0; i < keyArr.length; i++) {
myMap.set(keyArr[i], obj[keyArr[i]]);
}
return myMap
}
console.log(mainApp(arrList));
</script>
</body>
</html>
方法二
// 入口函数
function mainApp(arr) {
let tempStr = ""
for (var key in arr) {
let str = arr[key];
if (typeof arr[key] != 'object') {
tempStr += str.toString()
} else { //处理数组
tempStr += object(str)
}
}
console.log(stringFn(tempStr));
}
//数组处理
function object(arr) {
let tempStr = ""
arr.forEach(item => {
for (let key in item) {
tempStr += item[key].toString()
}
})
return tempStr
}
// 处理最终字符串
function stringFn(str) {
let obj = {};
str = str.toString().toLocaleLowerCase()
for (i = 0; i < str.length; i++) {
key = str[i];
if (obj[key]) {
obj[key]++;
} else {
obj[key] = 1;
}
}
return objSort(obj)
}
// 对象排序
function objSort(obj) {
//得到按键值升序排列的键数组
let keyArr = Object.keys(obj).sort((a, b) => {
return obj[b] - obj[a]; //降序
});
let myMap = new Map();
for (let i = 0; i < keyArr.length; i++) {
myMap.set(keyArr[i], obj[keyArr[i]]);
}
return myMap
}
mainApp(arrList)