Javascript 快速查看对象是否仅具有具有值的特定属性的方法
在我的代码中,我有一个具有两个或六个属性的对象,我需要知道是否存在特定的值组合:Javascript 快速查看对象是否仅具有具有值的特定属性的方法,javascript,object,Javascript,Object,在我的代码中,我有一个具有两个或六个属性的对象,我需要知道是否存在特定的值组合: var myObject = { name: "John Smith", type = "person" prop1: "", prop2: "", prop3: "", prop4: "" }; 或 我需要确定对象是否具有以下两个条件之一: 名称有一个值,类型为“business” name有一个值,类型为“person”,其他四个属性没有值 如果它满足这两个条件之一,我就把它放在一个地
var myObject = {
name: "John Smith",
type = "person"
prop1: "",
prop2: "",
prop3: "",
prop4: ""
};
或
我需要确定对象是否具有以下两个条件之一:
如果type==“business
,prop1-prop4
在对象中不存在,但是如果type==“person”
,则存在
不必每次都特别检查prop1-prop4
的简单方法是什么
我正在查看lodash函数,看看是否有一个(或多个链接在一起)能起到作用,但我还没有确定一个。我也对纯JS选项持开放态度
谢谢。最简单的方法是以下方法(实际上,它使用的是普通的JavaScript!):
var myObject1={
姓名:“约翰·史密斯”,
类型:“人”,
建议1:“,
第2项建议:,
建议3:“,
建议4:“”
};
变量myObject2={
名称:“我的企业名称”,
类型:“业务”
};
doStuff(myObject1);
doStuff(myObject2);
函数doStuff(obj){
var属性=Object.keys(obj);
开关(obj.型){
案例“人”:
if([“name”、“prop1”、“prop2”、“prop3”、“prop4”].every(p=>properties.includes(p))){
//和一个合法的人一起做事
log(“这个人很好!”);
}
打破
案例“业务”:
if(包括属性(“名称”)){
//做一些有效的生意
log(“这生意很好!”);
}
打破
}
}
最简单的方法是以下方法(实际上,它使用的是普通的JavaScript!):
var myObject1={
姓名:“约翰·史密斯”,
类型:“人”,
建议1:“,
第2项建议:,
建议3:“,
建议4:“”
};
变量myObject2={
名称:“我的企业名称”,
类型:“业务”
};
doStuff(myObject1);
doStuff(myObject2);
函数doStuff(obj){
var属性=Object.keys(obj);
开关(obj.型){
案例“人”:
if([“name”、“prop1”、“prop2”、“prop3”、“prop4”].every(p=>properties.includes(p))){
//和一个合法的人一起做事
log(“这个人很好!”);
}
打破
案例“业务”:
if(包括属性(“名称”)){
//做一些有效的生意
log(“这生意很好!”);
}
打破
}
}
您可以使用一个函数和一个if
条件
var myObject={
姓名:“约翰·史密斯”,
类型:“人”,
建议1:“,
第2项建议:,
建议3:“,
建议4:“”
};
变量myObject1={
名称:“我的企业名称”,
类型:“业务”
};
让checkProps=(obj,objName)=>{
设{name,type,prop1,prop2,prop3,prop4}=obj,len=name.length;
如果(len&&type==“业务”| len&&type==“人员”
&&prop1+prop2+prop3+prop4==“”){
log(objName+“满足两个条件之一”)
}否则{
log(objName+“不满足以下两个条件之一”)
}
}
检查道具(myObject,“myObject”);
checkProps(myObject1,“myObject1”);
如果符合条件,则可以使用函数和单个
var myObject={
姓名:“约翰·史密斯”,
类型:“人”,
建议1:“,
第2项建议:,
建议3:“,
建议4:“”
};
变量myObject1={
名称:“我的企业名称”,
类型:“业务”
};
让checkProps=(obj,objName)=>{
设{name,type,prop1,prop2,prop3,prop4}=obj,len=name.length;
如果(len&&type==“业务”| len&&type==“人员”
&&prop1+prop2+prop3+prop4==“”){
log(objName+“满足两个条件之一”)
}否则{
log(objName+“不满足以下两个条件之一”)
}
}
检查道具(myObject,“myObject”);
checkProps(myObject1,“myObject1”);
ES5的实现方式是什么?我使用的平台还不支持ES6。ES5的实现方式是什么?我使用的平台还不支持ES6。
var myObject = {
name: "My Business Name",
type = "business"
};
Checking for those conditions inside a function is one solution.
var myObject = {
name: "John Smith",
type = "person"
prop1: "",
prop2: "",
prop3: "",
prop4: ""
};
var validated = validateObject(myObject);
function validateObject(obj){
if((obj[name] && obj[type] === "business") || ((obj[name] && obj[type] === "person" && !obj[prop1] && !obj[prop2] && !obj[prop3] && !obj[prop4])) ){
return true;
}
return false;
}