Javascript 如果条件存在,如何推入新阵列?
我有两个数组,如果条件满足,我必须将$scope.checkData中匹配的对象推入新数组。我必须从$scope.checkData中获取函数中的“val”,并签入$scope.postData Javascript:Javascript 如果条件存在,如何推入新阵列?,javascript,angularjs,arrays,Javascript,Angularjs,Arrays,我有两个数组,如果条件满足,我必须将$scope.checkData中匹配的对象推入新数组。我必须从$scope.checkData中获取函数中的“val”,并签入$scope.postData Javascript: $scope.postData= [ { "pid": 1, "id": 1, "status": 1 }, { "pid": 1, "id": 2, "status": 0 }, { "pid": 1, "id": 3, "status":
$scope.postData= [
{ "pid": 1, "id": 1, "status": 1 },
{ "pid": 1, "id": 2, "status": 0 },
{ "pid": 1, "id": 3, "status": 1 },
{ "pid": 1, "id": 4, "status": 1 },
{ "pid": 1, "id": 5, "status": 0 },
{ "pid": 1, "id": 6, "status": 1 },
{ "pid": 1, "id": 7, "status": 1 }
];
$scope.checkData= [
{ "val": 1, "txt": "one" },
{ "val": 2, "txt": "two" },
{ "val": 3, "txt": "three" },
{ "val": 4, "txt": "four" },
{ "val": 5, "txt": "five" },
{ "val": 6, "txt": "six" },
{ "val": 7, "txt": "seven"
}];
$scope.bindData = function (id) {
console.log(id);
$scope.someAry = [];
id.forEach(function (elem) {
$scope.postData.forEach(function (val) {
console.log(elem);
if (val.id== elem && val.status == true) {
alert("match found");
}
else {
alert("match not found");
}
});
提前感谢。您可以使用一个哈希表和一个循环来设置哈希表,使用一个循环来过滤
检查数据
$scope.bindData = function (id) {
console.log(id);
$scope.someAry = [];
id.forEach(function (elem) {
$scope.postData.forEach(function (val) {
console.log(elem);
if (val.id == elem && val.status == 1) {
$scope.checkData.forEach(function (cval) {
if (cval.val == elem) {
$scope.newArray.push(cval);
}
});
}
});
})
}
var$scope={},
hash=Object.create(null);
$scope.postData=[{pid:1,id:1,status:1},{pid:1,id:2,status:0},{pid:1,id:1,status:1},{pid:1,id:4,status:1},{pid:1,id:6,status:1},{pid:1,id:7,status:1}];
$scope.checkData=[{val:1,txt:“一”},{val:2,txt:“二”},{val:3,txt:“三”},{val:4,txt:“四”},{val:5,txt:“五”},{val:6,txt:“六”},{val:7,txt:“七”};
$scope.postData.forEach(函数(a){
散列[a.id]=a.status==1;
});
$scope.newArray=$scope.checkData.filter(函数(a){
返回哈希值[a.val];
});
log($scope.newArray)代码>
。作为控制台包装{max height:100%!important;top:0;}
请添加想要的结果。@Nina Scholz我用预期结果更新了问题,请您检查一下。您好,上面的代码正在工作。您可以将元素数组传递给“$scope.bindData”方法,以获得“$scope.newArray”中的结果。