【问题标题】:how to check a value in array object angularjs如何检查数组对象angularjs中的值
【发布时间】:2017-03-22 09:11:44
【问题描述】:

我有这个数组对象:

$scope.datas.labels=['10','20','30']

而且我还有一个函数返回一个这样的数组对象:

response.labels=['10','20','30','50','100','80']

我创建了一个接收最后结果的函数..但我想要检查 response.labels 中的值是否存在于 $scope.datas.labels 我不想插入它..以避免重复数据$scope.datas.labels,我该怎么做??

我试过了,但没用:

$scope.concatToData=function (response) {
    if($scope.datas.labels=='') {
        $scope.datas.labels = $scope.datas.labels.concat(response.labels);
    }else {
        var i;
        for (i = 0; i < $scope.datas.labels.length; i++) {
            alert('qa' + JSON.stringify($scope.datas.labels));
            alert('res' + JSON.stringify(response.labels));
            if ($scope.datas.labels[i] !== response.labels[i]) {
                $scope.datas.labels = $scope.datas.labels.concat(response.labels[i]);
            } else {
                break;
            }
        }
    }
    $scope.datas.datasets = $scope.datas.datasets.concat(response.datasets);
}

【问题讨论】:

标签: angularjs arrays json


【解决方案1】:

试试这个,它会按照您的期望和要求工作。

var arr1=['10','20','30'];

var arr2=['10','20','30','50','100','80'];

for (var i in arr2) {
  if(arr2[i] != arr1[i]) {
    arr1.push(arr2[i]);
  }
}

document.getElementById('result').innerHTML = arr1;
#result {
  font-weight:bold;
  }
&lt;div id="result"&gt;&lt;/div&gt;

【讨论】:

    【解决方案2】:

    你也可以试试:

            var response = ['foo', 'fabio'];
            var labels = ['foo'];
            var result = response.filter((value) => {
                return labels.filter((rs) => {
                    return rs == value;
                }).length == 0;
            });
    

    它只会返回 $scope.datas.labels 上不存在的数据。

    【讨论】:

    • 谢谢你的回答,但它没有返回任何东西
    • 检查一下,它会在结果变量上返回 ['fabio']。
    【解决方案3】:

    看看lodash 库,你会发现它很有用,这对你也很有用:

    let common = _.intersection($scope.datas.labels, response.labels);
    if (_.size(common) && _.includes(common, 'myValue')) { 
      // You have a winner;
      // This item (myValue) is in both;
    } else {
    
    }
    

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2017-03-09
      • 2017-03-22
      • 2019-05-28
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      • 2014-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多