如何从angularjs中的对象中删除空值

时间:2016-03-22 12:25:46

标签: javascript angularjs json multidimensional-array

如何从angularjs中的对象中删除空值 -

这是我的JavaScript代码

$scope.addRole = function() { 
                            var tempDept = "";
                            angular
                                    .forEach(
                                            $scope.departments,
                                            function(value, key) {
                                                if (value.name == currentDepartment) { console.log(value.name);
                                                    tempDept = currentDepartment;
                                                    if (value.roles != "") value.roles
                                                    //value.roles
                                                            .push({
                                                                name : $scope.role.name,
                                                                //responsibilities : $scope.role.responsibilities
                                                            });
                                                }
                                            });
                            $scope.save(tempDept);
                            $scope.role = {
                                name : "",
                                responsibilities : []
                            };

                                $scope.role.responsibilities.push({name : ""});
                                $scope.role.responsibilities.push({name : ""});
                                $scope.role.responsibilities.push({name : ""});
                                currentDepartment = "";
                                console.log($scope.role.responsibilities.name);
                                $scope.role.responsibilities.splice(index, 1);


                            //$scope.save();
                        }

我想删除对象的空值,怎么做?给我一些建议......

3 个答案:

答案 0 :(得分:0)

你的意思是删除对象的属性?

喜欢 -

var a = {
    b : 1 
};

delete a.b; // a.b === undefined now 

答案 1 :(得分:0)

您需要使用以下内容删除对象的属性:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
 <title>Label Overlay Example</title>
 <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
 <script type="text/javascript">


 function initialize() {
    var latLng = new google.maps.LatLng(40, -100)
    ,  map = new google.maps.Map(document.getElementById('map_canvas'), {
        zoom: 15,
        center: latLng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    })
    ,   goldStar = {
        path: 'M57.996 -29.483q0 1.836 -1.332 3.24l-2.7 2.7q-1.368 1.368 -3.276 1.368 -1.944 0 -3.24 -1.368l-10.584 -10.548v25.344q0 1.872 -1.35 3.042t-3.258 1.17h-4.608q-1.908 0 -3.258 -1.17t-1.35 -3.042v-25.344l-10.584 10.548q-1.296 1.368 -3.24 1.368t-3.24 -1.368l-2.7 -2.7q-1.368 -1.368 -1.368 -3.24 0 -1.908 1.368 -3.276l23.436 -23.436q1.26 -1.332 3.24 -1.332 1.944 0 3.276 1.332l23.436 23.436q1.332 1.404 1.332 3.276z', 
        fillColor: 'red',
        fillOpacity: 5,
        scale: 0.2,
        strokeWeight: 0,
        rotation: 190,
        anchor: google.maps.Point(0, 0),
    size: google.maps.Size(-8, -8)
    };

    var marker = new google.maps.Marker({
        position: latLng,
        map: map,
        icon: goldStar
    });

    var label = new Label({
        map: map
    });

    label.bindTo('position', marker, 'position');
    label.bindTo('text', marker, 'position');
};


function Label(opt_options) {
    this.setValues(opt_options);
    var div = this.div_ = document.createElement('div');
    div.style.cssText = 'width: 20px; height: 20px; border-radius: 100%; position: absolute;' +
                     'background-color: #8dc73f; ';
};

Label.prototype = new google.maps.OverlayView;
Label.prototype.onAdd = function() {
    var pane = this.getPanes().overlayLayer;
    pane.appendChild(this.div_);
};

Label.prototype.draw = function() {
    var projection = this.getProjection();
    var position = projection.fromLatLngToDivPixel(this.get('position'));

    var div = this.div_;
    div.style.left = position.x - 17 + 'px';
    div.style.top = position.y - 6 +'px';
    div.style.display = 'block';
};

 </head>

<body onload="initialize()">
   <div id="map_canvas"  style="height: 100%; width: 100%"></div>
 </body>
 </html>

在这种情况下,您只需将属性删除为:

delete object.property

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete

答案 2 :(得分:0)

您必须使用angular custom filter

我创建了一个plunker代码,可能会对您有所帮助。 https://plnkr.co/edit/8YWxlr?p=preview