对于字符串

时间:2017-03-16 12:47:42

标签: javascript jquery

我正在尝试检查字符串中所有数组项的每个实例。实施例;

var string = "aa bb ccc";
var array = ["a", "b", "c"];

这应该执行我的代码7次 - 对于字符串中的任何数组项的每个实例执行一次。这很难解释,但我希望这个例子已经足够了。

另一个解释代码示例;

$.each(ArrayItem in string) {
    //execute code
}

我无法理解这一点,并且还没有找到任何远程工作方式。

修改

我想用这个来为每个字母添加一个价格 - 比如“a,b,c,d,e,f,g”花费1美元,而剩下的花费2美元 - 我需要检查每个实例我的字符串中的数组项目,并计算价格。

6 个答案:

答案 0 :(得分:2)

你可以在for循环中使用while + exec而不是数组项:

var string = "aa bb ass ccc ass"
var array = ["ass", "b", "c"]

var m

array.forEach(function(item) {
  var reg = RegExp(item, 'g')
  while ((m = reg.exec(string)) !== null) {
    console.log('match', m[0])
  }
})

答案 1 :(得分:1)

使用string拆分spread operator并对其进行迭代,以检查array是否包含该数组中的任何元素。

var string = "aa bb ccc";
var array = ["a", "b", "c"];

[...string].forEach(v => array.some(function(c){
  if (c == v) {
    console.log('code executed');
  }
}));

答案 2 :(得分:0)

您必须按' '分割字符串以获取子字符串数组,然后使用forEach$.each循环遍历它们:

劈裂:

var strings = string.split(' ');

或更有效:

var strings = string.trim()         // remove sorrounding spaces
                    .split(/\s+/);  // split by any number of spaces

使用forEach循环播放:

strings.forEach(function(str) {
    // use str
});

使用$.each循环播放:

$.each(strings, function(i, str) {
    // use str
});

答案 3 :(得分:0)

此功能将完成您​​的工作

    function checkString(a){
    for(i=0;i<a.length;i++)
        {  
          if(a[i]!==" "){
            if (yourArray.indexOf(a[i]) > -1) {
                //this line executes 7 times if the string a has 7 characters;
            } 
            }
        }

    }

答案 4 :(得分:0)

您可以使用对象并计算字母的外观。之后,您可以按不同的价格值分开。

var string = "aa bb ccc xyz",
    array = ["a", "b", "c"],
    count = Object.create(null);

string.split('').forEach(function (a) {
    if (a !== ' ') {
        count[a] = (count[a] || 0) + 1;
    }
});

Object.keys(count).forEach(function (k) {
    if (array.indexOf(k) !== -1) {
        console.log('found ' + k + ' of array: ' + count[k] + ' times');
    } else {
        console.log('found ' + k + ': ' + count[k] + ' times');
    }
});

答案 5 :(得分:0)

split方法与“”参数一起使用。 https://www.w3schools.com/jsref/jsref_split.asp

var string = "aa bb ccc",
    array = string.split(" ");

或者您也可以使用lodash:https://lodash.com/docs/4.17.4#split