在函数中返回 0 到 n 个数组值

Return 0 to n arrays values inside a function

提问人:user7370387 提问时间:4/12/2017 最后编辑:user7370387 更新时间:4/12/2017 访问量:227

问:

我有一个非常复杂的问题。

我有这个动态数组,其中可能包括 0 到 -> n 个值:

这是一个例子:

var array =[2,3,8];

这是第二个例子:

var array =[2,3,8,15,25];

现在,我需要执行这个函数(由 stakoverflower 轻轻地给出),但我不知道如何每次考虑每个值;它目前是一个静态函数,运行良好:

var filteredList = $filter('filter')($scope.footballers, function (i) {
      return (i.identifiant === 2 || i.identifiant === 3 || i.identifiant === 8);
 });

但是看,它适用于第一个数组示例,但不适用于第二个数组示例。

如果我想处理第二个数组,我需要输入以下内容:

 var filteredList = $filter('filter')($scope.footballers, function (i) {
      return (i.identifiant === 2 || i.identifiant === 3 || i.identifiant === 8 || i.identifiant === 15 || i.identifiant === 25);
 });

我的问题是:如何在 $filter 函数中添加一个 for 循环,以便能够处理第二个数组或数组的任何长度?

如果您有想法,非常感谢。然后循环会自动键入 i.identifiant === array[0]、i.identifiant === array[1] 等等!

我从来没有遇到过这种情况,我真的不知道如何返回动态长数组!

这也适用于第一个示例:

    var filteredList = $filter('filter')($scope.footballers, function (i) {
      return (i.identifiant === array[0] || i.identifiant === array[1] || i.identifiant === array[2]);
 });

但是,如果我的数组包含 12 个值,我该怎么办???我需要一个循环,但我根本不知道该怎么做!

然后,循环应该键入“i.identifiant === array[x]”

哎呀,我忘了,我的目标是使用 angularjs 显示数组“数组”中存在标识符的足球运动员列表。拖放应用程序。这就是我过滤的原因,$scope.footballers 里面有大量的标识符,但我只想保留一些,那些出现在数组中的标识符!问题是数组“array”可能包含 2 个值以及 25 个值。

我在想一个内部或末尾带有 eval() 的循环?

AngularJS for 循环 过滤器

评论

0赞 JB Nizet 4/12/2017
数组有一个 indexOf() 方法。您想要验证您的数组是否包含足球运动员的 ID。使用 indexOf()。在使用它时,请阅读其他数组方法的文档。developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/......
0赞 user7370387 4/12/2017
谢谢,但我需要用这个语法返回一些东西:return (i.identifiant === array[0] || i.identifiant === array[1] || i.identifiant === array[2]);
2赞 JB Nizet 4/12/2017
不,你没有。你需要做.如果你拒绝答案,你为什么要问问题?return array.indexOf(i.identifiant) >= 0
0赞 Heretic Monkey 4/12/2017
你的问题没有多大意义。你显示一个数字数组,但它们你显示一个作用于对象数组的过滤器。
0赞 user7370387 4/12/2017
这可能没有意义,但它正在起作用。目标是显示其标识符存在于数组中的足球运动员。

答:

0赞 user7370387 4/12/2017 #1

好的,JB Nizet 给了我答案,非常感谢,它高于我的水平,但它正在工作,太好了!

如果你对我的Labo感到好奇,它就在这里:

http://nicolash.org/football/#/liste

有好的一天

解决了逆问题:是否可以通过包含在另一个数组中来过滤 angular.js?

最后得到了那个反函数:

$scope.footballers = $filter('filter')($scope.footballers, function (i) {
       return presence_equipe.indexOf(i.identifiant) === -1
});

多谢!!

评论

0赞 user7370387 4/12/2017
我知道你可能会讨厌我,但是我怎么做相反的事情,而不是返回array.indexOf(i.identifiant) >= 0?我需要显示未包含在数组中的标识符(这是相反的) Iv'e 尝试过:返回 array.indexOf(i.identifiant) >!= 0 没有运气
0赞 user7370387 4/12/2017
解决了我的问题:return presence_equipe.indexOf(i.identifiant) === -1 非常感谢!