具有计数的唯一关联数组
Unique associative array with count
无法找到用数组实现以下目标的方法。不过,我打算将数组减少为唯一值,以获得每个唯一元素的总数。例如,获得一个最终数组,如:
var data = [14:"A",5:"IMG",2:"SPAN"]
其对应于与标签本身相关联的每个唯一标签中的项目的总数。我的原始样本阵列如下:
var data = ["A", "A","A","IMG","IMG","A","A","IMG","A","A","IMG","A","A","IMG","IMG","A","A","A","A","A","SPAN","SPAN"]
您无法获得
var data = [14:"A",5:"IMG",2:"SPAN"]
因为这不是有效的JavaScript。此外,如果不同标签的计数相似,则会得到重复的密钥。转换键/值,并使用JavaScript对象:
var reduced = {A: 14, IMG: 6, SPAN: 2};
在Ecmascript 5:中
var data = ["A","A","A","IMG","IMG","A","A","IMG","A","A","IMG","A","A","IMG","IMG","A","A","A","A","A","SPAN","SPAN"];
var reduced = data.reduce(function (result, item) {
result[item] = (result.hasOwnProperty(item) ? result[item] : 0) + 1;
return result;
}, {});
console.log(reduced); // Object {A: 14, IMG: 6, SPAN: 2}
jsFiddle此处
如果你需要支持没有"reduce"的浏览器,你可以在undercore.js 中找到reduce
var reduced = _.reduce(data, function (result, item) {
result[item] = (result.hasOwnProperty(item) ? result[item] : 0) + 1;
return result;
}, {});
jsFiddle此处带下划线
var data = ["A", "A", "A", "IMG", "IMG", "A", "A", "IMG", "A", "A", "IMG", "A", "A", "IMG", "IMG", "A", "A", "A", "A", "A", "SPAN", "SPAN"];
var temp = [];
$.each(data,function(i,v){
if ($.inArray(v, temp) == -1) temp.push(data[i]);
});
var count = [];
var c = 0;
$.each(temp,function(i,v){
$.each(data,function (index, val) {
if (v == val) c++;
});
count.push(c);
c = 0;
});
var obj = {};
for (var i = 0; i < count.length; i++) {
obj[temp[i]] = count[i]
}
console.log(obj); //Object { A=14, IMG=6, SPAN=2}
http://jsfiddle.net/aqPb2/2/
相关文章:
- 使用onkeyup JS事件检查输入的值是否唯一
- 当同一浏览器的两个实例浏览时,Javascript页面如何具有唯一的ID
- Lodash映射并返回唯一
- 多维关联数组的最后一个索引
- 在数据库中循环值时,为输入框获取唯一值
- 如何从数组中查找唯一对象
- 正在为循环创建唯一id
- node.js/javascript/couchdb视图到关联数组似乎不起作用
- 获取唯一值并使用javascript计算金额总和
- JavaScript:从对象数组中获取唯一值及其计数
- Rails——处理多态关联上的Ajax destroy调用
- ng重复中的ng模型-初始化唯一作用域属性
- 如何将按钮事件与唯一控件关联
- 创建具有唯一键的关联数组
- 具有计数的唯一关联数组
- 将一个元素与一个唯一的数字相关联
- 使用对象作为键(不是字符串而是唯一对象)的关联映射的javascript方法是什么?
- 将具有唯一id的对象集合存储为以id作为键的关联数组,而不是作为常规数组,是否存在缺陷?
- 将唯一属性关联到JavaScript中的匿名函数
- 如何将唯一的ui-sref关联到动态列表中的每个项