foe*_*all 3 jquery array-merge
我有类似下面的数组文本框
<input type="text" name="txtname[]" value="single" />
<input type="text" name="txtname[]" value="twin" />
<input type="text" name="txtname[]" value="single" />
<input type="text" name="txtname[]" value="dulex" />
<input type="text" name="txtname[]" value="single" />
Run Code Online (Sandbox Code Playgroud)
我想把这些价值展示给......
单-------- 3
双胞胎-------- 1
dulex -------- 1
var txtname = $(':input[name="txtname[]"]').map(function(a,b){ return $(b).val(); }).toArray();
var unique = {};
$.each(txtname, function(a,b){
if (!unique[b])
unique[b] = 0;
unique[b]++;
});
Run Code Online (Sandbox Code Playgroud)
unique 结束了:
({single:3, twin:1, dulex:1})
Run Code Online (Sandbox Code Playgroud)
UPDATE
如果你想将它作为jQuery插件:
$.fn.extend({
unique_count: function(){
var unique = {};
this.each(function(a,b){
var v = $(b).val();
if (!unique[v])
unique[v] = 0;
unique[v]++;
});
return unique;
},
unique_vals: function(){
var unique = [];
$.each($(this).unique_count(), function(a,b){ unique.push(a); });
return unique;
}
});
Run Code Online (Sandbox Code Playgroud)
输出是:
var $inputs = $(':input[name="txtname[]"]');
$inputs.unique_count() // = Object: {single:3, twin:1, dulex:1}
$inputs.unique_vals() // = Array: ["single", "twin", "duplex"]
Run Code Online (Sandbox Code Playgroud)