两个数组(JS)中相同字符串的数量

时间:2013-11-11 14:40:01

标签: javascript arrays

所以,我用Javascript编写文本机器人。我之前编写过c#,但这是我的第一个Javascript程序。所以我的问题是,如何在两个数组之间获得相同字符串的数量?所以,假设我们有一个数组,其中包含值“ 如何“,”是“和”你“。另一个数组的值为”how“,”is“,”it“和”going“。那么,如何创建一个从这些数组中返回1的函数?

3 个答案:

答案 0 :(得分:0)

您正在寻找的是阵列交叉点。计算它,然后获取结果数组的长度。

Simplest code for array intersection in javascript

答案 1 :(得分:0)

var count = 0;
arr1.forEach(function (elem) {
    if (arr2.indexOf(elem) !== -1) {
        count++;
    }
});

http://jsfiddle.net/Gsg4h/

答案 2 :(得分:0)

这是一个改编的underscore.intersect()。只要所有本机数组方法:indexOfeveryfilter都是polyfilled,就应该可以正常工作

var intersect = function (array) {
    var rest = array.slice.call(arguments, 1);
    return array.filter(function(item) {
        return rest.every(function(other) {
            return other.indexOf(item) >= 0;
        });
    });
}

可以像:

一样调用
var dups = intersect([1,2,3],[1,2],[5,8,2]);//[2]
var numofdups = dups.length;