0

我有一个包含很多字段的表单,考虑可能是 100。所有字段都不同,例如可能是StartTime DateTime EndTime Value etc.. 用户可以填写他们想要的任何字段并将其余字段保持黑色。

现在,Javascript or Node.js我需要检查是否为每个字段填充了字段,然后基于此我需要创建一个XML文件。截至目前,我正在尝试检查是否使用 if 条件填充了每个字段。如果我继续使用这种方法,那么我需要编写100 IF条件来管理所有 100 个耗时且冗余的字段。

我只是好奇是否有更好的方法。我尝试搜索,但找不到任何给我一些想法的相关帖子。如果它是重复的,那么我真的很抱歉。

有没有人有更好的主意?

截至目前,我正在检查这样的事情:

if(StartTime  != '' && StartTime  != null && StartTime  != undefined)
{
    append(StartTime)
}

if(DateTime  != '' && DateTime  != null && DateTime  != undefine)
{
    append(DateTime)
}
    
if(EndTime  != '' && EndTime  != null && EndTime  != undefine)
{
    append(EndTime)
}

if(Value  != '' && Value  != null && Value  != undefine)
{
    append(Value)
}

.
.
.
.
4

3 回答 3

1

我建议使用数据结构,您可以在其中保存要检查的数据,并且如果您要检查每个字段的相同条件,则在函数中实现逻辑。假设您使用数组作为数据结构,代码将如下所示:

const appendField = (field) => {
if (field  != '' && field  != null && field  != undefined)
//here you can do something in this case append(field)
}
// myArr is the array where you have the data you want to check
myArr.forEach(field => appendField(field))
于 2020-07-22T10:20:38.807 回答
1

你可以做这样的事情

const appendIf = () => {
   if(val != '' && val != null && val != undefine) {
      append(val);
   }
};

appendIf(StartTime);
appendIf(DateTime);
appendIf(EndTime);
appendIf(Value);

如果所有值都在数组或对象中,您也可以循环遍历:

for(/* whatever for loop is needed*/) {
   appendIf(currentValue);
}
于 2020-07-22T09:59:44.733 回答
1

遍历对象中的键并检查每个唯一键的值可能是一个不错的方法。如果您需要维护键的顺序,forEach 方法也允许您传入索引。i在示例中。

const appendValues = (data) => {
    const keys = Object.keys(data);

    keys.forEach((key, i) => {
        if (data[key]) {
            // Append logic if value
            append(data[key]);
        } else {
           // Logic if no value
        }
    })
};
于 2020-07-22T11:06:09.253 回答