在Javascript数组中查找并返回完全匹配(重复)

时间:2017-10-28 14:27:32

标签: javascript arrays

所以我一直在谷歌搜索并尝试使用不同的数组过滤器,但无济于事。

我有一个像这样的字符串的数组:

var foo = ['1X31UX11','X3U11X1','33X11U12'];

有没有办法在数组中相互检查每个字符串,如果存在完全匹配(即完全相同的字符顺序),则会打印特定字符串出现的次数&还打印有问题的字符串?

2 个答案:

答案 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;
&#13;
&#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);