精华内容
下载资源
问答
  • 对象的属性一般包括
    2020-12-19 15:11:06

    获取对象属性

    枚举和迭代的区别

    枚举:是一次性列举去集合中的元素
    迭代(遍历):并不是一次列举全部元素,是在循环的过程中遍历出元素

    获取属性各个API介绍

    for…of

    遍历数组获取value不可以遍历对象,对象可以使用Object.entries()或者Object.keys()或者Object.vaules()将对象转为数组后在遍历

    for…in

    遍历获取key,所以一般用来遍历对象,包含了原型上的对象,不包含symbol

    问题; 遍历属性包含了原型链上可以枚举的
    解决:使用hasOwnProperty 判断是否为自身属性
    补充:

    • in 操作符 是判断是否为自身或者原型链上的属性
    • instanceof 操作符 用来判断是否是某一个构造函数的实例

    Object.getOwnPropertyNames()

    返回一个数组获取自身属性,包括了自身不可枚举的属性,不包括symbol

    Object.keys()

    获取自身属性,不包括symbol

    Object.getOwnPropertySymbols()

    返回一个数组,包含对象自身所有symbol属性的键名

    Reflect.ownKeys(obj)

    返回一个数组,包含对象自身的(不含继承的)所有键名,不管键名是 Symbol 或字符串,也不管是否可枚举

    更多相关内容
  • 主要介绍了JS如何判断对象是否包含某个属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • js设置对象属性和读取对象属性详解

    千次阅读 2022-03-23 09:25:44
    js设置对象属性和读取对象属性详解

    js中可以定义对象属性,也可以读取对象属性。下面进行详细讲解

    属性分两种:数据属性和访问器属性。

    1,数据属性

    Configurable-表示属性是否可以通过 delete 删除并重新定义

    Enumerable-表示属性是否可以通过 for-in 循环返回

    Writable-表示属性的值是否可以被修改

    Value-包含属性实际的值

    2. 访问器属性

    Configurable-表示属性是否可以通过 delete 删除并重新定义

    Enumerable-表示属性是否可以通过 for-in 循环返回

    Get-获取函数

    Set-设置函数

    3,读取对象属性

    使用 Object.getOwnPropertyDescriptor()方法可以取得指定属性的属性描述符。这个方法接 收两个参数:属性所在的对象和要取得其描述符的属性名。返回值是一个对象,对于访问器属性包含 configurable、enumerable、get 和 set 属性,对于数据属性包含 configurable、enumerable、 writable 和 value 属性

    Object.getOwnPropertyDescriptor():,获取指定对象的所有属性的属性描述明细

    //1,数据属性
      let person = {};
      Object.defineProperty(person, "name", {
           writable: false, //不可写
           configurable: true, //不可删,非严格模式下无效
           value: '老王'
       })
       person.name = '小白' //无效
       console.log(person); //打印:老王
    
          let book = {
                year_: 2017,
                edition: 1
            };
            Object.defineProperty(book, "year", {
                get() {
                    this.year_
                },
                set(newValue) {
                    if (newValue > 2017) {
                        this.year_ = newValue
                        this.edition += newValue - 2017
                    }
                }
            })
            book.year = 2018
            console.log(book.year); //undefined
            console.log(book.edition); //2
            //3,定义多个属性
            let table = {}
            Object.defineProperties(table, {
                year_: {
                    value: 2017
                },
                edition: {
                    value: 1
                },
                year: {
                    get() {
                        return this.year_
                    },
                    set(newValue) {
                        if (newValue > 2017) {
                            this.year_ = newValue
                            this.edition += newValue - 2017
                        }
                    }
                }
            })
            book.year = 2019
            console.log(table); //{year_: 2017, edition: 1}
    
    
        //3,Object.getOwnPropertyDescriptor(),获取指定属性的属性描述符
    
            let descriptor = Object.getOwnPropertyDescriptor(table, 'year_')
            console.log(descriptor); //{value: 2017, writable: false, enumerable: 
            false, configurable: false}
            //4,Object.getOwnPropertyDescriptors(),获取指定对象的所有属性的属性描述明细
            let descriptors = Object.getOwnPropertyDescriptors(table); 
            console.log(descriptors);

    展开全文
  • @ApiModel(value = "IFieldResult", description = "判断类包含属性结果") public class IFieldResult<T> { private Boolean flag; private String type; private String table; private String hisValue; ...

    1、工具类

    import com.myfutech.employee.service.api.vo.request.candidate.CandidateImportVO;
    import com.myfutech.employee.service.api.vo.request.employee.EmployeeModifyVO;
    import com.myfutech.employee.service.provider.model.Employee;
    import com.myfutech.employee.service.provider.util.vo.IFieldResult;
    import io.swagger.annotations.ApiModelProperty;
    import org.apache.commons.lang3.StringUtils;
    import org.apache.commons.lang3.time.DateFormatUtils;
    import org.apache.commons.lang3.time.DateUtils;
    
    import java.lang.reflect.Field;
    import java.util.Date;
    
    /**
     * Created by Liuxd on 2019/2/25.
     */
    public class IBeanUtils {
    
        public static IFieldResult containFieldName(Object obj, String filedName, String filedValue) throws Exception {
            if (StringUtils.isBlank(filedName)) {
                return new IFieldResult(false);
            }
    
            boolean flag = false;
            String type = "";
            Object value = null;
    
            for (Field f : obj.getClass().getDeclaredFields()) {
                f.setAccessible(true);
    
                if (filedName.equals(f.getName())) {
                    flag = true;
                    type = f.getType().toString();
                    if (type.contains("Date")) {
                        if (!filedValue.contains(":")) {
                            filedValue = filedValue + " 00:00:00";
                        }
                        value = DateUtils.parseDate(filedValue, "yyyy-MM-dd HH:mm:ss");
                    } else {
                        value = filedValue;
                    }
                    break;
                }
    
            }
    
            return new IFieldResult(flag, type, value);
        }
    
        public static String getFieldValueByFieldName(String fieldName, Object object) {
            try {
                Field field = object.getClass().getDeclaredField(fieldName);
                //设置对象的访问权限,保证对private的属性的访问
                field.setAccessible(true);
                Object hisValue = field.get(object);
                if (null == hisValue) {
                    return "";
                }
    
                String value = "";
                String type = field.getType().toString();
                if (type.contains("Date")) {
                    value = DateFormatUtils.format((Date) hisValue, "yyyy-MM-dd HH:mm:ss");
                } else {
                    value = hisValue.toString();
                }
    
                return value;
            } catch (Exception e) {
    
                return "";
            }
        }
    
        public static String getFieldTypeByFieldName(String fieldName, Object object) {
            try {
                Field field = object.getClass().getDeclaredField(fieldName);
                //设置对象的访问权限,保证对private的属性的访问
                field.setAccessible(true);
                String type = field.getType().toString();
                return type;
            } catch (Exception e) {
    
                return "";
            }
        }
    
        public static String getFieldAnnotation(String fieldName, Object object) {
            try {
                Field field = object.getClass().getDeclaredField(fieldName);
                //设置对象的访问权限,保证对private的属性的访问
                field.setAccessible(true);
                ApiModelProperty property = field.getAnnotation(ApiModelProperty.class);
                if (null == property) {
                    return "";
                }
    
                return property.value();
            } catch (Exception e) {
                return "";
            }
    
        }
    
        /**
         * 判断对象中属性值是否全为空
         *
         * @param object
         * @return
         */
        public static boolean checkObjAllFieldsIsNull(Object object) {
            if (null == object) {
                return true;
            }
    
            try {
                for (Field f : object.getClass().getDeclaredFields()) {
                    f.setAccessible(true);
    
                    if (f.get(object) != null && StringUtils.isNotBlank(f.get(object).toString())) {
                        return false;
                    }
    
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            return true;
        }
    
    
        public static void main(String[] args) throws Exception {
            EmployeeModifyVO vo = new EmployeeModifyVO();
    
            IFieldResult result = IBeanUtils.containFieldName(vo, "employeeName", "99999");
    
            System.out.println(result.toString());
    
            vo.setEmployeeName("Jack");
    
            Object v = getFieldValueByFieldName("employeeName", vo);
    
            System.out.println(v);
    
            Employee employee = new Employee();
    
            employee.setCreateTime(new Date());
    
            String v2 = getFieldValueByFieldName("createTime", employee);
    
            System.out.println(v2);
    
            CandidateImportVO vo2 = new CandidateImportVO();
            boolean flag = checkObjAllFieldsIsNull(vo2);
            System.out.println(flag);
    
    
        }
    
    
    }
    

    2、相关VO类

    import io.swagger.annotations.ApiModel;
    import lombok.Data;
    
    @Data
    @ApiModel(value = "IFieldResult", description = "判断类包含属性结果")
    public class IFieldResult<T> {
    
        private Boolean flag;
    
        private String type;
    
        private String table;
    
        private String hisValue;
    
        private T value;
    
        public IFieldResult() {
        }
    
        public IFieldResult(Boolean flag) {
            this.flag = flag;
        }
    
        public IFieldResult(Boolean flag, String type, T value) {
            this.flag = flag;
            this.type = type;
            this.value = value;
        }
    }
    
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;
    import lombok.ToString;
    
    import javax.validation.constraints.NotBlank;
    import javax.validation.constraints.NotEmpty;
    import javax.validation.constraints.NotNull;
    import java.io.Serializable;
    
    @Data
    @ToString
    @ApiModel(value = "EmployeeModifyVO",description = "员工新增或修改对应实体类")
    public class EmployeeModifyVO implements Serializable {
    
        private static final long serialVersionUID = -7226431718100006277L;
    
        public interface Create {}
        public interface Update extends Create {}
    
        @NotEmpty(groups = EmployeeModifyVO.Update.class)
        @ApiModelProperty("员工id")
        private Long id;
    
        @ApiModelProperty("员工编号")
        private String employeeCode;
    
        @NotEmpty(groups = EmployeeModifyVO.Create.class)
        @ApiModelProperty("员工姓名")
        private String employeeName;
    
        @ApiModelProperty("职级类型")
        private String rank;
    
        @ApiModelProperty("职级序列")
        private Integer orders;
    
        @NotNull(groups = EmployeeModifyVO.Create.class)
        @ApiModelProperty("证件类型 0身份证 1护照")
        private Integer documentType;
    
        @NotNull(groups = EmployeeModifyVO.Create.class)
        @ApiModelProperty("身份证号码")
        private String identityCard;
    
        @NotBlank(groups = EmployeeModifyVO.Create.class)
        @ApiModelProperty("手机号")
        private String phoneNumber;
    
        @ApiModelProperty("备用手机号")
        private String phoneBackup;
    
        @ApiModelProperty("公司邮箱")
        private String workEmail;
    
        @ApiModelProperty("入职时间")
        private String entryTime;
    
        @ApiModelProperty("转正时间")
        protected String formalTime;
    
        @ApiModelProperty("离职日期")
        private String dimissionTime;
    
        @ApiModelProperty("业绩考核 0否1是")
        private Integer examine;
    
        @ApiModelProperty("是否同步用户0是1否")
        private Integer isUser;
    
        @ApiModelProperty("员工类型(字典key:employeeType)")
        private Integer employeeType;
    
    }
    

     

    展开全文
  • Java遍历对象所有属性

    千次阅读 2021-02-12 15:49:45
    要获取对象的所有属性可以使用getDeclaredFields()方法会返回一个Field数组遍历这个数组几个遍历所有属性注意使用这个方法会抛出4个异常然后根据属性的类型选择执行对应的内容public static void eachProperties...

    要获取对象的所有属性可以使用getDeclaredFields()

    方法会返回一个Field数组

    遍历这个数组几个遍历所有属性

    注意使用这个方法会抛出4个异常

    然后根据属性的类型选择执行对应的内容

    public static void eachProperties(Object model) throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{

    Field[] field = model.getClass().getDeclaredFields(); //获取实体类的所有属性,返回Field数组

    for(int j=0 ; j

    String name = field[j].getName(); //获取属性的名字

    System.out.println("attribute name:"+name);

    name = name.substring(0,1).toUpperCase()+name.substring(1); //将属性的首字符大写,方便构造get,set方法

    String type = field[j].getGenericType().toString(); //获取属性的类型

    if(type.equals("class java.lang.String")){ //如果type是类类型,则前面包含"class ",后面跟类名

    ...

    }

    if(type.equals("class java.lang.Integer")){

    ...

    }

    if(type.equals("class java.lang.Short")){

    ...

    }

    if(type.equals("class java.lang.Double")){

    ...

    }

    if(type.equals("class java.lang.Boolean")){

    ...

    }

    if(type.equals("class java.util.Date")){

    ...

    }

    }

    }

    具体执行的内容就是重点了

    我们知道模型的属性都会有对应的getter和setter方法

    只需要得到对应的getter和setter方法即可获取和设置属性

    这里就需要用到getMethod方法

    获得getter方法

    方法有分带参数和不带参数,我们知道getter方法是不带参数的

    获得getter方法如下

    Method m = model.getClass().getMethod("get"+name);

    获得setter方法

    如果是带参数的setter方法,就应该把参数的类型做封装成一个Class>泛型数组传入getMethod方法的第二个参数

    例如参数是String类型的setter方法如下

    Method m = model.getClass().getMethod("set"+name, new Class[] {String.class});

    执行getter方法

    String value = (String) m.invoke(model);

    执行setter方法

    m.invoke(model,new Object[] {new String("new value")});

    from: http://zhenhappy.github.io/2015/10/26/Java/Java-Each-Properties/

    展开全文
  • JS 判断对象中是否包含属性

    千次阅读 2021-04-07 12:06:39
    我们在使用对象的时候,通过点或方括号可以获取对象属性值,如果该对象自身不存在这个属性,就会返回undefined。 var obj={ name:"小破船", doWhat:"借箭" }; console.log(obj.name);//小破船 console....
  • JS 判断对象属性是否存在,判断是否包含某个属性,是否为自身属性 判断是否包含某对象 我们知道访问对象属性有两种形式,如下: var obj = { name:'听风是风' }; obj.name; //听风是风 obj['name']; //听风是风 ...
  • 遍历对象属性的5种方法

    千次阅读 2021-08-05 22:23:11
    遍历对象属性的5种方法ES6一共有**五种**方法可以遍历对象的属性 ES6一共有五种方法可以遍历对象的属性 for…in *for…in 循环遍历对象自己的和继承的可枚举属性(不含 Symbol 属性)。 Object.keys(obj) -...
  • 天才之作:通过泛型,对List中对象属性排序,支持设置各属性排序方式(动态属性),看了之后绝对让你震撼!
  • JS获取对象属性的方法

    千次阅读 2021-01-21 18:12:12
    JS对象属性 js对象属性有两种类型:字符串类型和Symbol类型。 如果使用其他类型的值作为属性时,都会将其转为字符串;如果是对象类型时,会直接转为[object Object]。 var obj = { ['str']: 'String ...
  • 解决对象转json字符串时对象属性不按对象属性顺序的问题 举例说明: List < User > list = userService.selectAllUser(); //获取一个对象数组,该对象中包含多个对象;User对象包含三个属性:id、username、...
  • ES5中的对象是指无序的属性的集合。(属性可以是基本值、对象和函数)。 属性类型 对象属性类型有两种,一种是数据属性,是数据值的保存位置;另一种是访问器属性包含getter和setter函数。 数据属性 数据属性...
  • JS中遍历对象属性的几种方式

    千次阅读 2022-06-22 14:26:30
    为了彻底搞定对象遍历的方法,我不得不翻出我的红宝书,找到“面向对象的程序设计—创建对象”的内容,仔细的研究了一下(起因来源于,突发奇想,想彻底搞懂原型链相关的知识,结果发现了对象属性遍历的几种方式,O...
  • java通过反射获取对象的指定属性值(包括私有属性值和指定注解属性值)
  • Python 判断对象是否包含某个属性

    千次阅读 2021-12-07 17:32:23
    seriesID = ds.SeriesDescription # 比如看有没有SeriesDescription 这个属性 except AttributeError as e: pass #2 hasattr(ds, SeriesDescription) # True or False #3 object_list = dict(ds) if '...
  • Python-对象没有属性E

    千次阅读 2021-01-13 23:45:22
    现在到了这样的地步,我不能进入任何领域的“战斗机”类没有它抛出错误,如:'duelist' object has no attribute '_duelist__health' 除了“”duelist“对象没有属性“\duelist\uuxxx””,除了输入错误之外,我还有...
  • window对象属性

    千次阅读 2019-06-28 23:08:15
    window对象属性 window对象中存储的属性和方法比较多,我们只对常用的做说明,不常用的看看就好。 首先是window中的这几个属性,这几个属性存储的值都是对象{}。每个对象对应一种操作,可以理解为将浏览器操作...
  • ES6学习--对象属性的遍历

    千次阅读 2020-12-19 11:12:52
    ES6一共有5种方法可以遍历对象属性。...(2)Object.keys(obj)Object.keys返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性)。(3)Object.getOwnPropertyNames(obj)Object.getOwnPropertyName...
  • 判断一个对象是否包含一个属性有多种的方式,如下: const obj = { name: 'john' } var a = 'name' in obj var b = Reflect.has(obj, 'name') var c = Reflect.hasOwnProperty.call(obj, 'name') var d = Object....
  • 在其开发企业微信接口存在这么个数据展示 let testData = [{ // 可以包含property,当然也可以包含config或者不包含或者多个情况 property: { control: 'Contact', id: 'Contact-1585125229216', ...
  • js获取对象属性的两种方式

    千次阅读 2019-04-20 10:22:06
    一、如果属性名称是常量(固定值),获取属性值的方式有: ...2、对象[属性名称] 如 obj[age] 二、如果属性名称是一个变量,值不固定,获取属性值方式只能是: 1、对象[属性名称]如obj[name+"1"] ...
  • js判断对象中是否包含某个属性

    千次阅读 2020-05-05 17:09:22
    方法一(in)有返回true,否者返回false var obj = { name: 'dj', age: 18 } console.log('name' in obj) // true console.log('eat' in obj) // false 方法二(hasOwnProperty)有返回true,否者返回false ...
  • python如何查看对象属性

    千次阅读 2020-12-10 23:52:03
    下面介绍一下,如何查看Python对象包含哪些属性,如成员函数、变量等,其中这里的Python对象指的是类、模块、实例等包含元素比较多的对象。这里以OpenCV2的Python包cv2为例,进行说明。由于OpenCV是采用C/C++语言...
  • 如何用js遍历对象数组及对象属性

    万次阅读 2018-12-10 22:50:11
    如何用js遍历对象数组及对象属性 条件:在Vue中objectList:[] 接收的后台数据是一个对象数组,对其进行遍历,得到某个具体的对象 for(var item=0;item&lt;this.objectList.length;item++){ //遍历对象数组,item...
  • js判断对象为空已经有好几种方法了,但是个人觉得不是特别方便。...es6针对对象增加了3个新方法(数组也有):(1)、Object.keys:返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键名(2...
  • JS面向对象之对象属性的属性

    千次阅读 2018-06-27 10:24:02
    ECMAScript的定义中,对象的属性有两种,一种是数据属性,另一种是访问器属性 ...下面就来聊聊对象属性的两种类别。   1.数据属性 这种属性包含有一个存放数据值的属性[[Value]],数据属性共有4个描述其行为的属...
  • 我们有个需求,把包含某些属性的集合给过滤出来,我现在需要把人员编号为1,2,3,4,5的人员过滤出来。 List<Person> personList = new ArrayList<>(); personList.add(new Person(1,"宋圆圆",25,...
  • js查看js对象属性

    千次阅读 2019-07-17 20:03:35
    一、创建对象 在js中创建对象并赋值 var person = new Object(); person.name="huangbaokang"; person.age=30; person.author = function(){ return this.name; } 也可以直接新建对象,不通过构造函数,如下所示,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,961,683
精华内容 784,673
热门标签
关键字:

对象的属性一般包括