使用Angular並嘗試返回基於兩個數組的比較結果。以下是我有:JS基於兩個數組與嵌套元素的比較返回數組
$scope.fbFriends = [{"id":1234,"name":'bob'},
{"id":4567,"name":'john'},
{"id":8910,"name":'totoro'}];
$scope.appFriends = [{"id":1,"name":'bob',"fb_id":1234},
{"id":2,"name":'john',"fb_id":4567}];
我想過濾中存在的兩個朋友和來自不存在appFriends返回fbFriends只的。 這是我做的,但它不起作用,它返回的方式太多次了。
$scope.not_friends = [];
$scope.filtered = [];
for (var i=0; i < $scope.fbFriends.length; i++) {
for (var j=0; j < $scope.appFriends.length; j++) {
if ($scope.fbFriends[i].id !== $scope.appFriends[j].fb_id) {
$scope.not_friends = $scope.fbFriends[i];
$scope.filtered.push($scope.not_friends);
}
}
};
console.log($scope.filtered);
這種方法有什麼問題? 獎金,我可以將它集成在一個過濾器中,並用它來重複fbFriends?
謝謝!
對於初學者'$ scope.not_friends = $ scope.fbFriends [I]':我想你想在這裏推這個物品? – Johan
你應該首先提取一個你需要比較的基元對象,可能是'fb_id'。這樣,你不必循環一個循環(n^2),你可以做得更像(n * 2) – dandavis
是的,最後我只返回那些在視圖中都是的。獲取fb id列表進行比較是很好的,但是我需要從數組中提取只有那些不匹配的數據。這不是讓更多的代碼? – commandantp