我有以下大数组:
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/