【发布时间】:2018-03-03 20:03:35
【问题描述】:
我有这个 JSON 数据:
vm.userListData = [{
"listId": 1,
"permission": "READ"
}, {
"listId": 2,
"permission": "WRITE"
}, {
"listId": 2,
"permission": "READ"
}, {
"listId": 3,
"permission": "READ"
}, {
"listId": 3,
"permission": "WRITE"
}, {
"listId": 4,
"permission": "WRITE"
}, {
"listId": 5,
"permission": "WRITE"
}]
还有这个:
vm.userComplementaryList = [{
"listId": 1,
"confidentiality": "PUBLIC",
"listName": "List name here..1",
"permission": "WRITE"
}, {
"listId": 2,
"confidentiality": "PUBLIC",
"listName": "List name here..2",
"permission": "READ"
}, {
"listId": 3,
"confidentiality": "CONFIDENTIAL",
"listName": "List name here..3",
"permission": "WRITE"
}, {
"listId": 4,
"confidentiality": "CONFIDENTIAL",
"listName": "List name here..4",
"permission": "WRITE"
}, {
"listId": 5,
"confidentiality": "CONFIDENTIAL",
"listName": "List name here..5",
"permission": "READ"
}]
使用这两个 JSON 数据,我必须过滤并获取唯一值并将它们推送到数组和重复的值(listId 和权限)中,将它们推送到其他数组中。 我这样做了:
vm.listForGrid = [];
vm.listForDropDown = [];
(function(){
for(var i = 0; i < vm.userComplementaryList.length; i++) {
for(var j = 0; j < vm.userListData.length; j++) {
if( (vm.userComplementaryList[i].listId == vm.userListData[j].listId) && (vm.userComplementaryList[i].permission == vm.userListData[j].permission) ) {
vm.listForGrid.push(vm.userComplementaryList[i]);
}
else {
vm.listForDropDown.push(vm.userComplementaryList[i]);
}
}
}
})();
vm.listForGrid 没问题,但 vm.listForDropDown 的值不止一次,我必须 break 循环。
重复的值与两个数组中的 listId 和权限相同
谢谢!
【问题讨论】:
-
break当你发现 listid 相同时。 -
把你的代码放到 plunkr
标签: javascript angularjs json for-loop filter