Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从AngularJS对象中删除键名并保留它';s值多少?_Angularjs_Object_Key Value_Angularjs Ng Model - Fatal编程技术网

如何从AngularJS对象中删除键名并保留它';s值多少?

如何从AngularJS对象中删除键名并保留它';s值多少?,angularjs,object,key-value,angularjs-ng-model,Angularjs,Object,Key Value,Angularjs Ng Model,我有一周中几天的复选框。我使用的是ng模型,但是不能对每个模型使用相同的模型,因为它可以防止选中多个框。因此,作为一种解决方法,我对模型使用了以下格式:day.sun、day.mon等 对象结果为:$scope.day={sun:0,mon:1} 我需要删除键名,使对象看起来像:$scope.day={0,1} 有没有办法删除密钥名?我在网上查看过,大多数示例显示同时删除键/值对。Object.values()是我遇到的另一个选项,但我得到一个错误,它没有定义 我需要将该值({0,1})存储到以

我有一周中几天的复选框。我使用的是ng模型,但是不能对每个模型使用相同的模型,因为它可以防止选中多个框。因此,作为一种解决方法,我对模型使用了以下格式:day.sun、day.mon等

对象结果为:$scope.day={sun:0,mon:1}

我需要删除键名,使对象看起来像:$scope.day={0,1}

有没有办法删除密钥名?我在网上查看过,大多数示例显示同时删除键/值对。Object.values()是我遇到的另一个选项,但我得到一个错误,它没有定义

我需要将该值({0,1})存储到以下对象中:

$rootScope.schedule = {
           "@": {
               "let_run": "yes",
               "when_holiday": "ignore_holiday",
                "begin":"00:00",
               "end":"24:00"
           },               

           "weekdays": {            
               "day": {
                   "@": {
                       **"day": $rootScope.day,**
                   }
               }            
           },
           "monthdays": {            
               "day": {
                   "@": {
                       "day": $rootScope.startDate
                   }
               }            
           }
        };

谢谢。

您可以使用forEach。顺便说一句,{0,1}不是有效的对象。您需要使用数组

$scope.newObj = [];
$scope.Object={sun:0, mon:1};
angular.forEach($scope.Object,function(val,key){
    $scope.newObj.push(val);
})

你可以用forEach。顺便说一句,{0,1}不是有效的对象。您需要使用数组

$scope.newObj = [];
$scope.Object={sun:0, mon:1};
angular.forEach($scope.Object,function(val,key){
    $scope.newObj.push(val);
})

为了保证正确的密钥顺序,您应该按顺序使用一组日密钥

var day = {sun: 0, mon: 1, ... },
    days = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'],
    dayValues = days.map(function(key) {
        return day[key] || 0;
    });

为了保证正确的密钥顺序,您应该按顺序使用一组日密钥

var day = {sun: 0, mon: 1, ... },
    days = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'],
    dayValues = days.map(function(key) {
        return day[key] || 0;
    });

这不是有效的对象,您是指像
[0,1]
这样的数组吗?有关
Object.values
polyFillsorry,请参见。我已编辑了问题…对象是$scope.day={sun:0,mon:1}不,您的
{0,1}
不是有效对象。这肯定是XY问题。您真正的问题是如何选中多个复选框,但您已经询问了一个涉及删除密钥名的潜在解决方案。不幸的是。潜在的解决方案并非真正有效。你应该考虑重新审视你的真实问题,并展示一些更多的细节来解释为什么你认为你不能检查多个复选框。这不是一个有效的对象,你是指一个数组,比如<代码>(0, 1)< /代码>?有关
Object.values
polyFillsorry,请参见。我已编辑了问题…对象是$scope.day={sun:0,mon:1}不,您的
{0,1}
不是有效对象。这肯定是XY问题。您真正的问题是如何选中多个复选框,但您已经询问了一个涉及删除密钥名的潜在解决方案。不幸的是。潜在的解决方案并非真正有效。你应该考虑重新审视你的真实问题,并展示一些更多的细节来解释为什么你认为你不能检查多个复选框。因此,一旦值在数组中-如何将这些数组值推送到$rootScope.schedule-->day:$rootScope.day?请注意,对象键顺序不能保证为hanks。因此,一旦这些值在数组中,如何将这些数组值推送到$rootScope.schedule-->day:$rootScope.day?