根据JavaScript/jQuery中的数组计数将数组转换为子数组?
如何根据JavaScript或jQuery中的元素值计数将数组转换为子数组 例如:根据JavaScript/jQuery中的数组计数将数组转换为子数组?,javascript,jquery,arrays,sub-array,Javascript,Jquery,Arrays,Sub Array,如何根据JavaScript或jQuery中的元素值计数将数组转换为子数组 例如: var myArray=["a","b","c","a","a","c","b"]; 计算元素a、b和c后的预期输出 outputArray=[["a",3],["b",2],["c",2]]; 您可以使用reduce()和ES6Map()和扩展语法… var myArray=[“a”、“b”、“c”、“a”、“a”、“c”、“b”]; var result=[…myArray.reduce(函数(r,e)
var myArray=["a","b","c","a","a","c","b"];
计算元素a、b和c后的预期输出
outputArray=[["a",3],["b",2],["c",2]];
您可以使用reduce()
和ES6Map()
和扩展语法…
var myArray=[“a”、“b”、“c”、“a”、“a”、“c”、“b”];
var result=[…myArray.reduce(函数(r,e){
返回r.set(e,!r.get(e)?1:r.get(e)+1)
},新地图())]
console.log(result)
如果您想以自己的方式获得解决方案,请尝试
var myArray=[“a”、“b”、“c”、“a”、“a”、“c”、“b”];
var-obj=[];
对于(var i=0,j=myArray.length;i
另一种方法为什么子数组会这样?为什么不像[{letter:“a”,count:3},{letter:“b”…}…]
这样的东西呢?上面的问题数组中可能重复的不是重复的,而是没有转换成子数组。你应该按照用户想要的方式回答问题,然后给出你的输入和替代方法。我没有否决投票,但很可能是谁否决了,这就是为什么。很好!!,在使用ES6时,使用箭头功能会使它看起来更漂亮<代码>var result=[…myArray.reduce((r,e)=>r.set(e,!r.get(e)?1:r.get(e)+1),new Map())]
谢谢它在@nenad完美工作
function countLetters(arr) {
return arr.reduce(function(r, e) {
r[e] = (r[e] || 0) + 1;
return r;
}, {});
}