Car*_*tin 2 javascript for-loop
我有这个JSON数据:
var lists = [{
"listId": 1,
"permission": "WRITE"
}, {
"listId": 2,
"permission": "WRITE"
}, {
"listId": 2,
"permission": "READ"
}, {
"listId": 3,
"permission": "READ"
}, {
"listId": 3,
"permission": "WRITE"
}, {
"listId": 5,
"permission": "WRITE"
}]
Run Code Online (Sandbox Code Playgroud)
还有这个:
var arr = [{
"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": "WRITE"
}]
Run Code Online (Sandbox Code Playgroud)
有了这个和嵌套,我必须从arr过滤数据并将其推送到结果[]如果匹配listId和列表中的权限 [...]
var result = [];
for(var i = 0; i < arr.length; i++) {
for(var j = 0; j < lists.length; j++) {
if( (arr[j].listId == lists[i].listId) && (arr[j].permission == lists[i].permission) ) {
result.push(arr[j]);
}
}
}
console.log(result);
Run Code Online (Sandbox Code Playgroud)
问题是如果arr.length小于lists.length,我得到listId undefined
知道怎么解决这个问题?
问题是如果arr.length小于lists.length,我得到listId undefined
您需要为各自的数组使用相应的索引,即ifor arr和jforlists
if( (arr[i].listId == lists[j].listId) && (arr[i].permission == lists[j].permission) )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |