0

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

4

3 回答 3

0

您要查找的内容称为数组交集。计算它,然后取结果数组的长度。

javascript中数组交集的最简单代码

于 2013-11-11T14:42:26.560 回答
0
var count = 0;
arr1.forEach(function (elem) {
    if (arr2.indexOf(elem) !== -1) {
        count++;
    }
});

http://jsfiddle.net/Gsg4h/

于 2013-11-11T14:45:10.257 回答
0

这是一个改编的underscore.intersect()。只要所有本机 Array 方法:indexOf、、everyfilter被填充,就应该可以工作

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;
于 2013-11-11T14:50:31.047 回答