javascript - 将 JavaScript 数组拆分成更小的数组并获取每个值的频率

标签 javascript arrays

我有以下大数组:

var divs = [
    {class:'A', top:0,   left:0},
    {class:'B', top:50,  left:60},
    {class:'C', top:30,  left:10},
    {class:'D', top:100, left:180},
    {class:'E', top:80,  left:50},
    {class:'F', top:100, left:200},
    {class:'G', top:50,  left:80}
];

我只想隔离 top 值。我尝试使用 split() 但我可能没有正确使用它,因为没有按预期返回。

一旦 top 值被隔离到它们自己的较小数组中,我想对其进行迭代并找到每个值的出现频率。

我能得到一些帮助吗?

最佳答案

var divs = [
            {class:'A', top:0,   left:0},
            {class:'B', top:50,  left:60},
            {class:'C', top:30,  left:10},
            {class:'D', top:100, left:180},
            {class:'E', top:80,  left:50},
            {class:'F', top:100,  left:200},
            {class:'G', top:50,  left:80}
];
var topsy = {};
for(var i = 0, max = divs.length; i < max; i++){
    var a = divs[i];
    topsy[a.top] = (topsy[a.top] + 1) || 1;
}

此时,您将拥有一个包含所有顶部的倒数,键是顶部,值是它在其中的次数。要获取 key 列表,您可以说:

Object.keys(topsy);

Object.keys 在 IE 中不工作。 你最终会得到 topsy =

{
    0: 1,
    30: 1,
    50: 2,
    80: 1,
    100: 2
}

然后你可以说

Object.keys(topsy);//[3,30,50,80,100]

您一次性完成了分析和阵列。

关于javascript - 将 JavaScript 数组拆分成更小的数组并获取每个值的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7561374/

相关文章:

javascript - 如何仅在一页中使用 css?

javascript - 让 Chartjs 中的所有标签都在固定位置

javascript - MongoDB $拉不工作

c - 在 C 中使用类似网格的数据

javascript - 从 Opera 中的键盘快捷键运行小书签

javascript - Post ajax 请求发送选项请求而不是 post

javascript - 查找包含特定字符串的单元格的位置

python - Numpy 点积结果为 `IndexError: only integers, slices...`

c - 在 C 中生成随机数组时出现段错误和未初始化的数据

javascript - 在 JavaScript 中从扁平化字符串构造数组