我的 javascript 中有这组数组。
var array = [
['Jack', 'A'],
['Jack', 'A'],
['Sara', 'A'],
['Jack', 'B'],
['Peter', 'B'],
['Sara', 'C'],
['Sara', 'B'],
['Sara', 'A'],
['Sara', 'B'],
['Peter', 'B'],
['Peter', 'A'],
['Peter', 'C']
];
我的目标就是像这样安排。
Jack: A : 2
Jack: B : 1
Sara: A : 2
Sara: B : 2
Sara: C : 1
Peter: A : 1
Peter: B : 2
Peter: C : 1
我正在尝试像这样编写代码,但我无法正确完成
let counts = {};
array.forEach(element => {
counts[element] = (counts[element] || 0) + 1;
});
有人对这个有想法吗? 谢谢..
我想你想要这样的东西:
let array = [
['Jack', 'A'],
['Jack', 'A'],
['Sara', 'A'],
['Jack', 'B'],
['Peter', 'B'],
['Sara', 'C'],
['Sara', 'B'],
['Sara', 'A'],
['Sara', 'B'],
['Peter', 'B'],
['Peter', 'A'],
['Peter', 'C']
];
function reArrangeArray(arr)
{
let result = {};
arr.forEach(function(item) {
let name = item[0];
let category = item[1];
if (!result[name]) {
result[name] = {};
}
if (!result[name][category]) {
result[name][category] = 1;
} else {
result[name][category]++;
}
});
return result;
}
console.log(reArrangeArray(array));