所以我一直googling了很多,并尝试使用不同的过滤器阵列等,无济于事。查找和返回完全匹配(重复)在JavaScript数组
我有一个字符串数组,像这样:
var foo = ['1X31UX11','X3U11X1','33X11U12'];
有没有一种方法来检查相互每个字符串数组中,如果有一个精确匹配(即字符以相同的顺序)它打印特定字符串发生多少次&也打印有问题的字符串?
所以我一直googling了很多,并尝试使用不同的过滤器阵列等,无济于事。查找和返回完全匹配(重复)在JavaScript数组
我有一个字符串数组,像这样:
var foo = ['1X31UX11','X3U11X1','33X11U12'];
有没有一种方法来检查相互每个字符串数组中,如果有一个精确匹配(即字符以相同的顺序)它打印特定字符串发生多少次&也打印有问题的字符串?
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));
Ah yes , 谢谢!现在它使很多完美!我在类似的方法,但几乎忘了else语句(使功能几乎没用) – user2868900
@ user2868900你可以接受一个答案,以显示访问你的问题的人谁给你的答案 – zevee
使用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);
是的,这是可能的(实际上相当容易写自己) - 请显示你的尝试,并解释与t的问题下摆是 – UnholySheep
预期结果是什么样子? – zer00ne
这是一个中等大小的数据集w。 2-300个条目,所以我想收集一个数组或对象中的重复条目,如下所示: ['string 1':15次,'string 2:12 times,'string 3:8 times] – user2868900