所以我一直在谷歌搜索并尝试使用不同的数组过滤器,但无济于事。
我有一个像这样的字符串的数组:
var foo = ['1X31UX11','X3U11X1','33X11U12'];
有没有办法在数组中相互检查每个字符串,如果存在完全匹配(即完全相同的字符顺序),则会打印特定字符串出现的次数&还打印有问题的字符串?
答案 0 :(得分:2)
function arrayRepeats(array) {
var returnObject = {};
for (var i = 0; i < array.length; i++) {
if (returnObject[array[i]]) {
returnObject[array[i]]++;
} else {
returnObject[array[i]] = 1;
}
}
return returnObject;
}
var foo = ['1X31UX11','X3U11X1','33X11U12'];
console.log(arrayRepeats(foo));
var bar = [1, 1, 2, 1, 3, 1, 31, 3, 1, 5, 4, 1];
console.log(arrayRepeats(bar));
&#13;
答案 1 :(得分:1)
使用Array#reduce收集每个字符串出现在对象中的次数:
var foo = ['1X31UX11','X3U11X1','33X11U12', '1X31UX11'];
var result = foo.reduce(function(count, str) {
count[str] = (count[str] || 0) + 1;
return count;
}, {});
console.log(result);