angular.js正则表达式示例?如何使用angular.forEach

时间:2015-02-18 00:14:22

标签: javascript arrays regex angularjs

我的scope.data有内部数组问题

问题:[{q1:sth1,q2:sth1,q3:sth2},{q1:sth2,q2:sth1,q3:sth2} ...]

我想使用angular.forEach表达式来遍历数组,并且每个q [1-9]计算它有多少有vaules sth1和sth2

示例下面的结果是q1:sth1 = 1,q1:sth2 = 1,q2:sth1 = 2,q2:sth2 = 0等....

实际上我不知道如何使用正则表达式。

例如

angular.forEach(array.questions.q / [0-9] / ??所以它会为每个值q1 q2 q3 q4创建一些业务逻辑,具体取决于我将在阵列中拥有多少个&#39 ; s对象。

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

$scope.data = [
  {q1:sth1,q2:sth1,q3:sth2},
  {q1:sth2,q2:sth1,q3:sth2},
  {q1:sth2,q2:sth1,q3:sth1}
];

var count = {};
angular.forEach($scope.data, function (question, key) {
    var context = this;
    Object.keys(question).forEach( function (prop) {
      if (prop.search(/q[1-9]/) !== -1 ) {
        var value = question[prop];
        if (context[prop] === undefined) {
          context[prop] = {};
          context[prop][value] = 1;        
        } else if (context[prop][value] === undefined) { 
          context[prop][value] = 1;
        } else {
          context[prop][value]++;          
        }
      }
    });
}, count);

DEMO