一旦選擇了對象,一些節點連接在一起並且這些鏈接存儲在linkArray[]
中,則對象將被添加到nodeArray[]
,每個對象保存節點的源ID和目標ID連接。通過匹配來自另一個陣列的多個值來過濾數組
我需要篩選linkArray[]
,以便它只返回source
和target
位於nodeArray[]
之內的對象。
所以從瀏覽類似的問題,到目前爲止,我有以下幾點:
var linkArray = [{
"conID": "100",
"source": "10",
"target": "11"
}, {
"conID": "101",
"source": "11",
"target": "12"
}, {
"conID": "102",
"source": "12",
"target": "13"
}, {
"conID": "103",
"source": "13",
"target": "14"
}, {
"conID": "386",
"source": "55",
"target": "32"
}];
var nodeArray = [{"id": "10"}, {"id": "11"}, {"id": "12"}];
function filterArray(array, filter) {
var myArrayFiltered = [];
for (var i = 0; i < array.length; i++) {
for (var j = 0; j < filter.length; j++) {
if (array[i].source === filter[j].id) {
myArrayFiltered.push(array[i]);
}
}
}
return myArrayFiltered;
}
myArrayFiltered = filterArray(linkArray, nodeArray);
document.body.innerHTML = '<pre>' + JSON.stringify(myArrayFiltered, null, 4) + '</pre>';
我已經嘗試添加if語句,包括目標ID,以及,但林不知道我很理解它正確。
結果將返回與source
匹配的所有鏈接nodeArray[]
匹配id
。
[
{
"conID": "100",
"source": "10",
"target": "11"
},
{
"conID": "101",
"source": "11",
"target": "12"
},
{
"conID": "102",
"source": "12",
"target": "13"
}
]
什麼,我需要被過濾陣列有助於使它只返回其中兩個source
和target
ID是nodeArray[]
對象。
選擇節點10,11和12後,所需的結果將只是2個對象,因爲節點13不在選擇中。
[
{
"conID": "100",
"source": "10",
"target": "11"
},
{
"conID": "101",
"source": "11",
"target": "12"
}
]
希望這是明確的,謝謝!
謝謝,很好! – MattStudios