我有三个包含逗号分隔数字的字符串.
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/
它允许您将任意数量的变量(包含逗号分隔数字的字符串)传递给函数.