我有一个如下所示的对象数组:
用户窗体
.
{
name:"Tom",
occupation:"Programmer",
hobbies:" ",
foodAllergy:"fish",
favoriteColor:"blue"
}
看起来像这样:
ValidateFieldsArray
我需要验证["hobbies", "foodAllergy", "name"]
对象数组中的ValidateFieldsArray
是否填充了字符串。它将返回false,因为UserForm
为空。
目前我正在使用For循环遍历validateFieldsArray,它运行正常。我想知道是否有更好的解决方案。我也hobbies
字符串。
我不能使用lodash因为我比较的是密钥而不是价值。我想做这样的事情,并添加额外的检查,如string.trim()!=="":
trim
答案 0 :(得分:3)
let isValid = validateFieldsArray.reduce((obj, k) => {
return (obj && obj[k].trim()) ? obj : false;
}, UserForm);
如果有效,则返回UserForm
对象,否则返回布尔值false
。对象必须具有不仅仅是空格的字符串。如果将let
替换为var
和箭头功能,则代码为有效ES 5并返回IE 9。
答案 1 :(得分:3)
使用Array.every
似乎更适合检查数组中的每个键
var isValid = ValidateFieldsArray.every( v => UserForm[v] && UserForm[v].trim().length);