使用javascript检查多个字符串彼此包含

我有三个包含逗号分隔数字的字符串.

var str1 = "1,5,3";
var str2 = "2,5,1";
var str3 = "3,2,1,5"; 

我想互相检查这三个字符串(以获取所有之间的共同元素)
预期产出

var result = 1,5;

如果我只有两个字符串,这就是我已经使用过的逻辑

var array = str2.split(',');
for(var item in array) {
var contains = (str1.indexOf(array[item]) > -1);
if(contains == 1) {
    var result = array[item]+',';
    getele2 += result;
    geteleresult = getele2.replace(/\,$/, '');
  }
}
alert(geteleresult);

但是当检查多个字符串时,我不知道如何为这些应用排序逻辑.任何想法然后请帮助
谢谢…

最佳答案 您可以尝试此功能和逻辑:

function findCommon() {
    var nums = {};
    var args_length = arguments.length;
    for (var i = 0; i < args_length; i++) {
        var cur_arg = arguments[i];
        var cur_found = {};

        var cur_arg_split = cur_arg.split(",");
        for (var j = 0; j < cur_arg_split.length; j++) {
            var cur_val = cur_arg_split[j];
            if (!(cur_val in cur_found)) {
                cur_found[cur_val] = 1;
                if (!(cur_val in nums)) {
                    nums[cur_val] = 0;
                }
                nums[cur_val]++;
            }
        }
    }

    var ret = [];
    for (var key in nums) {
        if (nums[key] === args_length) {
            ret.push(key);
        }
    }
    return ret;
}

演示:http://jsfiddle.net/LkEyj/1/

它允许您将任意数量的变量(包含逗号分隔数字的字符串)传递给函数.

点赞