遍历数组的JavaScript/AngularJS只显示一个对象

javascript/angularjs looping through an array show only one object

本文关键字:显示 一个对象 AngularJS 数组 JavaScript 遍历      更新时间:2023-09-26

在 Angularjs 模态中,我正在尝试显示所有具有 4 级的类,但我只有一个。 请问我应该如何改变我的罐头才能得到所有的类

$scope.openClass = function (classes) {
    $log.info("classes",classes);
    var modalInstance = $modal.open({
        templateUrl: 'classes.html',
        controller: 'ModalClassInstanceCtrl',
        resolve: {
            info: function () {
                var info = {};
                for (var i=0;i<classes.length;i++){                     
                    if (classes[i].level==4){                           
                        info['name']= classes[i].name;
                        $log.info("classinfo",info);                            
                    }
                }                   
                $log.info(info);
                return info;
            }
    }
});

if 条件中的$log向我显示写入类,它们在我的情况下是两个,但 for 循环之后的$log只显示一个

可以使用筛选方法,如下所示:

var filteredArray = classes.filter(function(value) {
   return value.level == 4;
));

之后,如果您只想提取这些项目的名称,则可以执行以下操作:

var names = filteredArray.map(function(obj) {
  return obj.name;
}

如果你打算经常这样做,你可以编写一个函数来抽象出地图,这样:

function pluck(array, key) {
  return array.map(function(item) {
    return item[key]; 
  }); 
}

我认为,你覆盖了你的参数"名称"

info['name']= classes[i].name;

如果你想收集,你应该

var info = [];
info.push(classes[i].name)