我有这个数组对象:
$scope.datas.labels=['10','20','30']
我还有一个函数返回一个这样的数组对象:
response.labels=['10','20','30','50','100','80']
我创建了一个函数来接收最后的结果..但我想要的是检查$ scope.datas.labels中是否存在response.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);
}
答案 0 :(得分:0)
您也可以尝试:
var response = ['foo', 'fabio'];
var labels = ['foo'];
var result = response.filter((value) => {
return labels.filter((rs) => {
return rs == value;
}).length == 0;
});
它只返回$ scope.datas.labels上不存在的数据。
答案 1 :(得分:0)
查看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 {
}
希望有所帮助。
答案 2 :(得分:0)
尝试这一点,它将按照您的期望和要求运作。
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;
&#13;
#result {
font-weight:bold;
}
&#13;
<div id="result"></div>
&#13;