Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据JavaScript/jQuery中的数组计数将数组转换为子数组?_Javascript_Jquery_Arrays_Sub Array - Fatal编程技术网

根据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)

如何根据JavaScript或jQuery中的元素值计数将数组转换为子数组

例如:

var myArray=["a","b","c","a","a","c","b"];
计算元素a、b和c后的预期输出

outputArray=[["a",3],["b",2],["c",2]];
您可以使用
reduce()
和ES6
Map()
和扩展语法

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;
    }, {});
}