javascript - 使用javascript检查多个字符串是否相互包含

标签 javascript for-loop foreach

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

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/

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

关于javascript - 使用javascript检查多个字符串是否相互包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16454424/

相关文章:

perl - 从STDIN读取时,while vs foreach

JavaScript 数组分块的特定方法

java - 我的两个变量无法解析为变量

php - 如何将项目分组到类别下?

c++ - For 循环退出条件(size_t 与 int)

python - 使用一行代码打印一个for循环

php - 使用 PHP 数组输出 MySQL 查询 - foreach 循环错误 "illegal offset"和 "invalid argument"

javascript - JQuery 设置 CSS Transform, Translate 类中的属性

javascript - 如何检查 ionic 本地存储中的 null 或未定义值并重定向到登录页面?

javascript - 在浏览器内存中存储 JSON 数据