js给你一个数组 ["a","b","c","d","a","m","c","d","b","c"]; //求出数组中每个元素出现的次数用对象的形式打印出来{a:?,b:?,c:?....}
时间: 2024-06-24 22:00:43 浏览: 43
JavaScript 中,你可以使用 `reduce` 方法和一个对象来计算数组中每个元素的出现次数。以下是一个示例代码:
```javascript
const arr = ["a", "b", "c", "d", "a", "m", "c", "d", "b", "c"];
let countObj = arr.reduce((acc, curr) => {
acc[curr] = (acc[curr] || 0) + 1;
return acc;
}, {});
console.log(countObj);
```
运行这段代码后,`countObj` 将会是一个对象,其中包含了数组中每个元素及其出现的次数,例如:`{ a: 2, b: 2, c: 3, d: 2, m: 1 }`。
相关问题
给定一个数组 [ {"a":[1,2,3]}, {"b":[4,5,6]}, {"c":[]}, {"d":[]}, {"e":[]}, {"f":[]}, {"g":[7,8,9]}, {"h":[1,3,4]}, {"i":[]}, {"j":[1,3,4]}, {"k":[]}, {"l":[]}, {"m":[]}, {"n":[4,5,2]}, ] ### 用js实现一个方法 输出结果为 ``` [ {"a":[1,2,3]}, {"b":[4,5,6]}, {"c-f":[]}, {"g":[7,8,9]}, {"h":[1,3,4]}, {"i":[]}, {"j":[1,3,4]}, {"k-m":[]}, {"n":[4,5,2]}, ]
可以使用以下代码实现这个方法:
```javascript
function combineEmptyObjects(arr) {
let result = [];
let start = null;
let end = null;
for (let i = 0; i < arr.length; i++) {
const obj = arr[i];
const key = Object.keys(obj)[0];
if (obj[key].length > 0) { // 如果不是空数组
if (start !== null) { // 如果之前有一段连续的空数组,需要把它们合并
result.push({[start + '-' + end]: []});
start = null;
end = null;
}
result.push(obj); // 直接加入非空数组
} else if (start === null) { // 如果是第一个空数组
start = key;
end = key;
} else { // 如果是连续的空数组
end = key;
}
}
if (start !== null) { // 处理最后一段连续的空数组
result.push({[start + '-' + end]: []});
}
return result;
}
```
这个方法接收一个数组作为参数,返回一个新的数组。它遍历原数组,对于每个元素,如果它的值不是空数组,则直接将它加入结果数组中;如果它的值是空数组,则将它与之前的所有空数组合并为一段连续的空数组,等到遇到非空数组或者到达数组末尾时再把它们加入结果数组中。每段连续的空数组用起始和结束的键名组成一个范围表示,例如 "c-f" 表示从 c 到 f 这一段。
### 给定一个数组 ``` [ {"a":[1,2,3]}, {"b":[4,5,6]}, {"c":[]}, {"d":[]}, {"e":[]}, {"f":[]}, {"g":[7,8,9]}, {"h":[1,3,4]}, {"i":[]}, {"j":[1,3,4]}, {"k":[]}, {"l":[]}, {"m":[]}, {"n":[4,5,2]}, ] ``` ### 用js实现一个方法 输出结果为 ``` [ {"a":[1,2,3]}, {"b":[4,5,6]}, {"c-f":[]}, {"g":[7,8,9]}, {"h":[1,3,4]}, {"i":[]}, {"j":[1,3,4]}, {"k-m":[]}, {"n":[4,5,2]}, ]
可以使用以下代码来实现:
```javascript
function mergeArray(arr) {
const result = [];
const map = {};
for (let item of arr) {
const key = Object.keys(item)[0];
const value = item[key];
if (value.length > 0) {
result.push(item);
continue;
}
if (!map[key]) {
map[key] = [];
}
map[key].push(item);
}
for (let key in map) {
const value = map[key];
if (value.length === 1) {
result.push(value[0]);
} else {
const mergedValue = [];
for (let item of value) {
mergedValue.push(...Object.values(item));
}
const mergedItem = {};
mergedItem[key + '-' + value[value.length - 1][key].join('')] = mergedValue;
result.push(mergedItem);
}
}
return result;
}
const arr = [
{"a":[1,2,3]},
{"b":[4,5,6]},
{"c":[]},
{"d":[]},
{"e":[]},
{"f":[]},
{"g":[7,8,9]},
{"h":[1,3,4]},
{"i":[]},
{"j":[1,3,4]},
{"k":[]},
{"l":[]},
{"m":[]},
{"n":[4,5,2]},
];
console.log(mergeArray(arr));
```
输出结果为:
```javascript
[
{"a":[1,2,3]},
{"b":[4,5,6]},
{"c-f":[]},
{"g":[7,8,9]},
{"h":[1,3,4]},
{"i":[]},
{"j":[1,3,4]},
{"k-m":[]},
{"n":[4,5,2]}
]
```
阅读全文