简体   繁体   English

为空的javascript对象成员分配新值

[英]Assign new value to null javascript object members

I am having issues figuring out how to find the nulls in my object and replace them with 0's. 我在弄清楚如何在对象中查找空值并将其替换为0时遇到问题。 I was able to access the correct member at one point but once it left the loop their were no longer assigned the 0. I am fairly new to working with objects in js so I am pretty lost. 我能够一次访问正确的成员,但是一旦它离开循环,就不再为它们分配0。对于在js中处理对象,我还很陌生,所以我很迷路。 Any help would be greatly appreciated. 任何帮助将不胜感激。

var data = { 
    0 : {
         Day1: {
               Hours: 6,
               Minutes: null
         },
         Day2: {
               Minutes: 45
         },
         Day3: {
               Hours: 8,
               Minutes: 15
         },
    1 : {
         Day1: {
               Hours: 6,
               Minutes: 20
         },
         Day2: {
               Hours: 45
               Minutes: null
         },
         Day3: {
               Hours: 8,
               Minutes: 15
         }
};


for (var item in data) {
    for (var item2 in item) {
         item[item2].Hours = item[item2].Hours || 0;
         item[item2].Minutes = item[item2].Minutes || 0;
    }
}

//Ignore this line. Just assigning onject to angular scope when finished
$scope.timeInfo = data;

@Ian is correct when he says that in for (variable in object) loops variables refers to the object key property names. @Ian在说for (variable in object)变量for (variable in object)循环中的变量引用对象键属性名称时是正确的。 So in your case, one way to achieve your objective is the following: 因此,就您而言,实现目标的一种方法是:

(NOTE: I went ahead and added some missing braces in your data object.) (注意:我继续,并在data对象中添加了一些缺少的花括号。)

var data = { 
    0 : {
         Day1: {
               Hours: 6,
               Minutes: null
         },
         Day2: {
               Minutes: 45
         },
         Day3: {
               Hours: 8,
               Minutes: 15
         }
    },
    1 : {
         Day1: {
               Hours: 6,
               Minutes: 20
         },
         Day2: {
               Hours: 45,
               Minutes: null
         },
         Day3: {
               Hours: 8,
               Minutes: 15
         }
    }
};


for (var item in data) {
    for (var item2 in data[item]) {
         data[item][item2].Hours = data[item][item2].Hours || 0;
         data[item][item2].Minutes = data[item][item2].Minutes || 0;
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM