我有两个逗号分隔的字符串,
var hiddenString = '14172,10062,14172,14172,100,10,14172,15000,12000';
var strB = '14172,10062,10064,10025,100,14182';
我需要根据以上两个创建另一个字符串,
如果hiddenString
与strB
具有不匹配的值,则没有这些不匹配的值需要创建一个新的字符串,并避免重复。
简单地说,我需要从两个字符串中获取所有匹配的值。
作为基于我的两个字符串的示例,我期望以下内容:
varFinalHiddenString = 14172,10062,100;
如何使用JavaScript做到这一点,它应该在 safari 和 IE 11 或更早的版本中工作。请帮助我,我是JS的新手。
答案 0 :(得分:4)
您可以首先使用split()
字符串从中生成数组。然后通过使用其他数组中的filter()
检查当前项的索引,indexOf()
较小的数组:
var hiddenString = '14172,10062,14172,14172,100,10,14172,15000,12000';
var strB = '14172,10062,10064,10025,100,14182';
var temp1 = hiddenString.split(',');
var temp2 = strB.split(',');
var varFinalHiddenString = temp2.filter(function(s){
return temp1.indexOf(s) > -1;
}).join(',');
console.log(varFinalHiddenString);
答案 1 :(得分:0)
制作字符串数组,然后使用“过滤器”方法。然后转换回字符串。
var hiddenString = '14172,10062,14172,14172,100,10,14172,15000,12000';
var strB = '14172,10062,10064,10025,100,14182';
var hiddenStringAsArray = hiddenString.split(',');
var strBArray = strB.split(',');
var resultObject = $(strBArray).filter(hiddenStringAsArray);
var resultArray = resultObject.toArray();
var resultString = resultArray.join(',');
console.log(resultString);