【问题标题】:Get all match values from two comma separated string从两个逗号分隔的字符串中获取所有匹配值
【发布时间】:2019-11-11 10:26:51
【问题描述】:

我有两个逗号分隔的字符串如下,

var hiddenString = '14172,10062,14172,14172,100,10,14172,15000,12000';

var strB = '14172,10062,10064,10025,100,14182';

我需要根据以上两个再创建一个字符串,

如果hiddenStringstrB 有不匹配的值,那么如果没有这些不匹配的值,则需要创建新字符串并避免重复。 简单地说,我需要从两个字符串中获取所有匹配值。

作为基于我的两个字符串的示例,我期待以下内容:

varFinalHiddenString = 14172,10062,100;

我怎样才能使用 JavaScript 做到这一点,并且应该可以在 safariIE 11 或其早期版本中使用。请帮助我,我是 JS 新手。

【问题讨论】:

  • 到目前为止,您尝试了哪些方法来解决此问题?向我们展示您的尝试

标签: javascript jquery arrays string


【解决方案1】:

您可以先split() 字符串从它们生成数组。然后通过indexOf()在其他数组中检查当前项的索引来检查较小的数组filter()

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);

【讨论】:

  • 而且我认为箭头功能也不适用于 IE
  • @Mamum ,谢谢先生,正如 sachith 和 Nick 所说,这不适用于 IE,您能帮帮我吗
  • @Adam,我已经更新了答案,请立即查看:)
  • @Mamun 这里是 temp1 , temp2 是作为数组吗?我是对的吗?
【解决方案2】:

制作字符串数组,然后使用“过滤器”方法。然后转换回字符串。

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);

【讨论】:

    猜你喜欢
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 2012-05-19
    • 2018-09-16
    • 1970-01-01
    相关资源
    最近更新 更多