我有一个数组:
let array = ['yay', 'yay', 'yay', 'opps', 'yay', 'yay', 'opps', 'opps', 'opps'];
Run Code Online (Sandbox Code Playgroud)
如果结果我需要它,如何过滤此数组:
let filterArray = [['yay', 3] ['opps', 1], ['yay', 2], ['opps' 3]];
Run Code Online (Sandbox Code Playgroud)
谢谢.
您可以使用Array.reduce方法迭代原始数组并创建新数组.
acc(累积数组)为空,则按下数组中的[curr, 1](当前变量和计数)acc(累积数组)最后推送索引包含curr变量,则更新计数acc(累计阵列)最后被推索引不包含curr变量,然后按[curr, 1]在acc.let array = ['yay', 'yay', 'yay', 'opps', 'yay', 'yay', 'opps', 'opps', 'opps'];
let modifiedArray = array.reduce((acc, curr) => {
if (!acc.length) {
acc.push([curr, 1]);
} else {
let lastPushedArray = acc[acc.length-1];
if (lastPushedArray[0] === curr) {
acc[acc.length-1][1]++;
} else {
acc.push([curr, 1]);
}
}
return acc;
}, []);
console.log(modifiedArray);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |