Javascript 从列表中查找对象数组中的值
我有一个如下所示的对象数组:Javascript 从列表中查找对象数组中的值,javascript,arrays,string,lodash,Javascript,Arrays,String,Lodash,我有一个如下所示的对象数组: ["hobbies", "foodAllergy", "name"] 用户窗体 { name:"Tom", occupation:"Programmer", hobbies:" ", foodAllergy:"fish", favoriteColor:"blue" } 以及一个如下所示的ValidateFieldsArray: ["hobbies", "foodAllergy", "name"] 我需要验证是否有从UserForm对象数组中的Validat
["hobbies", "foodAllergy", "name"]
用户窗体
{
name:"Tom",
occupation:"Programmer",
hobbies:" ",
foodAllergy:"fish",
favoriteColor:"blue"
}
以及一个如下所示的ValidateFieldsArray
:
["hobbies", "foodAllergy", "name"]
我需要验证是否有从UserForm
对象数组中的ValidateFieldsArray
填充的字符串。它将返回false,因为嗜好
为空
目前,我正在使用For循环遍历validateFieldsArray,效果很好。我想知道是否有更好的解决办法。我还trim
字符串
我不能使用lodash,因为我比较的是键而不是值。我想这样做,并添加额外的检查,如string.trim()==“”:
返回UserForm
对象(如果有效),否则返回布尔值false
。对象的字符串必须不仅仅包含空格。如果将let
替换为var
和箭头函数,则代码是有效的ES 5,并可返回IE 9
返回
UserForm
对象(如果有效),否则返回布尔值false
。对象的字符串必须不仅仅包含空格。如果将let
替换为var
和箭头函数,则该代码是有效的ES 5并可返回IE 9。使用数组。每个似乎更适合检查数组中的每个键
var isValid = ValidateFieldsArray.every( v => UserForm[v] && UserForm[v].trim().length);
使用Array.each
似乎更适合检查数组中的每个键
var isValid = ValidateFieldsArray.every( v => UserForm[v] && UserForm[v].trim().length);
是否需要对字符串进行长度检查?空字符串是错误的。还是比我的好。@JaredSmith-不,可能不需要长度检查字符串的长度检查有必要吗?空字符串是错误的。还是比我的好。@JaredSmith-不,可能不需要检查长度