[js][填坑] 数组中各元素的数量、数量最多的元素
#遍历关联数组、对象,用 for in
function eleCount(arr) { // if (typeof arr == 'string') { // arr = arr.split(''); // }不需要 var temp = {}; var maxName; var maxCount = 0; for (var i = 0; i < arr.length; i++) { if (temp[arr[i]]) { temp[arr[i]] += 1; } else { temp[arr[i]] = 1; } } console.info(temp); for (var k in temp) { if (maxName) { if (maxCount < temp[k]) { maxName = k; maxCount = temp[k]; } } else { maxName = k; maxCount = temp[k]; } } console.warn(maxName, maxCount); } var arr1 = [4, 5, 4, 7, 8, 4, 2, 67, 5, 89, 5, 67]; var arr2 = ['a', 'b', 'd', 'e', 'f', 'h', 'g', 'k', 'a', 'b', 'e', 'd']; var arr3 = ['a', 'b', 'd', 'e', 'F', 'F', 'g', 'k', 'A', 'B', 'e', 'd']; var arr4 = 'sdfxcaweasdazkvda'; eleCount(arr1); eleCount(arr2); eleCount(arr3); eleCount(arr4); //只对数字数组有效,对关联数组无效 console.log(Math.max.apply(null, arr1)); //89 console.log(Math.max.apply(null, arr2)); //NaN console.log(Math.max.apply(null, arr3)); //NaN
#abandon
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
var a = [4, 5, 4, 7, 8, 4, 2, 67, 5, 89, 5, 67];
//var b = a.sort();//浅复制
var b = [];
//深复制防止改变原数组
//深复制方法一
// b = a.map(function(e, i, arr) {
// return e;
// })
//深复制方法二
// a.forEach(function(e, i, arr) {
// b[i] = e;
// });
//深复制方法三
for (var i = 0; i < a.length; i++) {
b[i] = a[i];
}
b.sort();
var count = 1;
var temp = [];
var max = 1;
var maxname;
for (var i = 0; i < b.length; i++) {
if (b[i] == b[i + 1]) {
count++;
} else {
if (max < count) {
max = count;
maxname = b[i];
}
console.log(b[i] + '的个数为:' + count);
count = 1;
}
}
console.log(a);
console.log(b);
console.log(maxname + '的个数最多,为:' + max);
</script>
</body>
</html>
浙公网安备 33010602011771号