【问题标题】:how to get an array from two arrays with the same size of the first array in angularjs?如何从与angularjs中第一个数组大小相同的两个数组中获取一个数组?
【发布时间】:2023-03-26 01:03:02
【问题描述】:

我想要一个包含与administrator 数组大小相同的真值和假值的数组

$scope.result = [];
angular.forEach($scope.administrator, function(option) {
  angular.forEach($scope.Administrator, function(admin) {
    if (option === admin) {
      $scope.result.push(true);
    } else {
      $scope.result.push(false);
    }
  });
});

这里假设administrator 数组包含[a,b,c,d,e,f]Administrator 数组包含[c,d],这样我就可以找到值[false,false,true,true,false,false] 的结果数组。

【问题讨论】:

  • 我认为最好的方法是:$scope.result = new Array($scope.administrator.length).fill(false); 然后遍历$scope.Administrator 获取$scope.administrator 数组中值的索引(如果存在)。在这个纯 JS 的小提琴中看到,你只需要将它调整为角度:jsfiddle.net/0gy6vcwL/1

标签: javascript angularjs logic


【解决方案1】:

我会为此使用普通的旧 JavaScript:

var administrator = ["a", "b", "c", "d", "e", "f"];
var Administrator = ["c", "d"];

var result = administrator.map(a => Administrator.some(b => a === b));

console.log(result);

注意事项:

  • map 遍历调用它的数组的每个元素,并返回一个具有相同数量元素的数组,通过传递的函数进行转换。
  • some 检查数组中调用它的任何元素是否对给定的函数返回 true。

结合两者,我们得到administrator中的元素数组,其中的值表示该元素是否在Administrator中。

请注意,使用大小写不同的两个变量/属性名称可能是一种不好的做法。考虑重命名其中一个。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-01
  • 2019-05-26
  • 2021-12-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多