gpt4 book ai didi

javascript - angularjs 根据给定数组重新排序 ng 重复结果

转载 作者:行者123 更新时间:2023-11-30 00:08:09 25 4
gpt4 key购买 nike

我正在学习 Angularjs,我有一个小问题:

我从用户那里返回了以下数组

userPreferences = [7,5,4]

我有一个对象,我正在使用 ng-repeat 显示所有新闻,看起来像这样:

{
"id": 1,
"preferences": [
3,
4
]
}

所以,我想在我的 ng-repeat 中使用从用户偏好返回的数组,并首先对显示偏好的新闻进行排序,然后在其他新闻下方排序,这可能吗?

类似于:

<li ng-repeat="new in news | filter:{'userPreferences' : new.preferences}">

我真的不知道我是否必须使用 filter、orderBy 或 sort,有什么帮助吗?

最佳答案

您可以拥有自己的函数,返回范围内匹配的 preferences 的数量:

function intersect(array1, array2) {
return $filter('filter')(array1, function(n){
return array2.indexOf(n) != -1;
});
}

$scope.matchedPreferences = function(n) {
return intersect(n.preferences, $scope.userPreferences).length;
};

并将其传递给 orderBy 过滤器:

<li ng-repeat="n in news | orderBy:matchedPreferences:true">{{n}}</li>

这将按照匹配偏好的数量降序排列新闻。

这里是 Fiddle

关于javascript - angularjs 根据给定数组重新排序 ng 重复结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37670823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com