具有重复值的数组数组
Array of arrays with repeated values
let array = [
["7", "s"],
["7", "s"],
["6", "d"],
["5", "f"],
["5", "f"],
["5", "f"],
["5", "f"],
["5", "f"]
]
我有一个数组。因此,数组中的大多数项目都是相同的。我想要的结果应该只有每个数组中的一个加上一个额外的项目,说明数组重复的次数。
//The new third value in the array is the number of times it was repeated.
[
["7", "s", 2],
["6", "d", 1],
["5", "f", 5]
]
let array = [
["7", "s"],
["7", "s"],
["6", "d"],
["5", "f"],
["5", "f"],
["5", "f"],
["5", "f"],
["5", "f"]
];
let objArrayCount = array.reduce((acc, [number, letter]) => ({
...acc,
[number]: {
...acc[number],
[letter]: acc[number] && acc[number][letter] ? acc[number][letter] + 1 : 1
}
}), {});
reducedArray = Object.entries(objArrayCount).reduce((acc, [number, letterFrequencyObj]) => [...acc, ...Object.entries(letterFrequencyObj).map(([letter, frequency]) => [number, letter,frequency])],[]);
console.log(reducedArray);
let array = [
["7", "s"],
["7", "s"],
["6", "d"],
["5", "f"],
["5", "f"],
["5", "f"],
["5", "f"],
["5", "f"]
]
我有一个数组。因此,数组中的大多数项目都是相同的。我想要的结果应该只有每个数组中的一个加上一个额外的项目,说明数组重复的次数。
//The new third value in the array is the number of times it was repeated.
[
["7", "s", 2],
["6", "d", 1],
["5", "f", 5]
]
let array = [
["7", "s"],
["7", "s"],
["6", "d"],
["5", "f"],
["5", "f"],
["5", "f"],
["5", "f"],
["5", "f"]
];
let objArrayCount = array.reduce((acc, [number, letter]) => ({
...acc,
[number]: {
...acc[number],
[letter]: acc[number] && acc[number][letter] ? acc[number][letter] + 1 : 1
}
}), {});
reducedArray = Object.entries(objArrayCount).reduce((acc, [number, letterFrequencyObj]) => [...acc, ...Object.entries(letterFrequencyObj).map(([letter, frequency]) => [number, letter,frequency])],[]);
console.log(reducedArray);