精华内容
下载资源
问答
  • JS判断对象是否存在某个属性
    2021-12-07 17:29:53
    // 判断对象是否包含某个属性基本方法
    
    var obj = {a:undefined}
    //1.
    console.log(obj.hasOwnProperty('a')) //true
    //注意如果一个重写了 hasOwnProperty 的话会改变
    // 如
    var obj1 ={
      a:'1',
      hasOwnProperty(){
        return false
      }
    }
    console.log(obj1.hasOwnProperty('a'))  //false
    
    
    //2.
    console.log('a' in obj) // true
    
    
    //3.
    console.log(Object.keys(obj).includes('a')) //true
    // 不推荐使用 obj.a 因为a属性可能存在但它的值是 undefined

    更多相关内容
  • 主要介绍了JS如何判断对象是否包含某个属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 检测对象属性存在与否可以通过以下几种方法来判断:使用in关键字、使用对象的hasOwnProperty()方法、用undefined判断、在条件语句中直接判断,感兴趣的朋友可以了解下哈
  • 判断对象是否存在某个属性 // 判断对象是否存在某个属性 var obj = { name: 'fqniu', age: 18 } // js中为false的 null ,'',undefined,0,NaN // 如果 obj.aa 对象中不存在aa这个属性 obj.fqniu 为undefined...

    判断对象是否存在某个属性

      // 判断对象中是否存在某个属性
        var obj = {
          name: 'fqniu',
          age: 18
        }
        // js中为false的 null ,'',undefined,0,NaN
        // 如果 obj.aa 对象中不存在aa这个属性 obj.fqniu 为undefined
        // if (obj.name) {
        //     console.log(obj.name);
        // }
        // 判断aa 这个属性是否存在 obj对象中
        // 如果存在就返回 true 不存在就返回 false
        
        console.log(('name' in obj));  //true
        console.log(('age' in obj));  //true
        console.log(('sex' in obj)); //false
    
    

    案例说明:

     /*
            统计数组中元素出现的次数
            [1,2,3,1,1,1,2,2,3,3,4]
                1出现的次数 4
                2出现的次数 3
                3出现的次数 3
                4出现的次数 1
         */
        var arr = [1, 2, 3, 1, 1, 1, 2, 2, 3, 3, 4];
        var res = arr.reduce(function (pre, cur) {
          // pre = {}
          // if (pre[cur]) {
          //     pre[cur] += 1
          // } else {
          //     pre[cur] = 1
          // }
    
          if (cur in pre) {
            pre[cur] += 1
          } else {
            pre[cur] = 1
          }
          return pre
        }, {})
        console.log(res)
        
        for (var key in res) {
          console.log(key + '出现的次数' + res[key]);
        }
        
    

    在这里插入图片描述

    展开全文
  • 代码如下: var obj = {name:’jack’}; obj.hasOwnProperty(‘name’); // –> true obj.hasOwnProperty(‘toString’); // –> false
  • 一、对象.hasOwnProperty('属性') let obj = { name: 'll', age: 189 }; console.log(obj.hasOwnProperty('age')); // true console.log(obj.hasOwnProperty('name')); // true console.log(obj.hasOwnProperty...

    目录

    根据业务不同选择不同的方式来判断对象上是否有该属性

    一、对象.hasOwnProperty('属性')

    二、点( . )或者方括号( [ ] )

    三、 in 运算符


    根据业务不同选择不同的方式来判断对象上是否有该属性

    一、对象.hasOwnProperty('属性')

    语法:

            对象.hasOwnProperty('属性');    返回值为  布尔值

    let obj = { name: 'll', age: 189 };

    console.log(obj.hasOwnProperty('age'));        //  true

    console.log(obj.hasOwnProperty('name'));        // true

    console.log(obj.hasOwnProperty('sex'));         // false

    注意:

    1. 和原型没关系 ,不会查找原型上的属性。
    2. 只判断自身属性的场景。 

    二、点( . )或者方括号( [ ] )

    使用 

            对象.属性 != undefined   来判断对象是否含有某个属性。

    或者

             对象['属性'] != undefined  来判断对象是否含有某个属性

    通过点或者方括号可以获取对象的属性值,如果对象上不存在该属性,则会返回undefined。

    不存在只的是对象和对象的原型链上都不存在,如果原型链上有该属性则返回原型链上的属性。 

    var obj = {
        name: 'll',
        age: 189,
    };
    console.log(obj['name']);   // ll
    console.log(obj.age);   // 189
    console.log(obj.sex);   // undefined
    // 可以查找原型上的属性
    console.log(obj.toString); // ƒ toString() { [native code] }
    obj.data = undefined;
    console.log(obj.data);  // undefined

    注意:

    1. 会查找原型链上的属性。
    2. 不能用在对象的属性值存在,属性值为 undefined 的场景下。

    三、 in 运算符

    对in运算符详细了解:in - JavaScript | MDN

    语法:

            属性 in 对象;

    返回值:

            布尔值

    // 数组
    var arr = ['blue', 'pink', 'yellow'];
    console.log(0 in arr);    //  true
    console.log(1 in arr);    //  true
    console.log(3 in arr);     //  falae 
    // 必须使用索引号,而不是数组元素的值
    console.log('pink' in arr);  // false
    // 数组上有 length 属性
    console.log(length in arr);  // true
    // 也可以判断数组原型上的属性
    console.log('concat' in arr);  // true
    
    // Symbol.iterator in trees // 返回true 
    console.log(Symbol.iterator in arr) // 返回true (数组可迭代,只在ES2015+上有效)
    
    // 内置对象
    console.log("PI" in Math);  // 返回true
    
    // 自定义对象
    var mycar = { make: "Honda", model: "Accord", year: 1998 };
    console.log("make" in mycar);   // 返回true
    console.log("model" in mycar);  // 返回true
    
    // in右操作数必须是一个对象值。例如,你可以指定使用String构造函数创建的字符串,但不能指定字符串文字。
    var color1 = new String("green");
    console.log("length" in color1); // 返回true
    var color2 = "coral";
    console.log("length" in color2) // 报错(color2不是对象)Cannot use 'in' operator to search for 'length' in coral
    
    // 使用 delete 运算符删除了一个属性,则 in 运算符对所删除属性返回 false。
    var mycar = { make: "Honda", model: "Accord", year: 1998 };
    delete mycar.make;
    "make" in mycar;  // 返回false
    var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
    delete trees[3];
    3 in trees;  // 返回false
    
    // 只是将一个属性的值赋值为undefined,而没有删除它,则 in 运算仍然会返回true
    var mycar = { make: "Honda", model: "Accord", year: 1998 };
    mycar.make = undefined;
    "make" in mycar;  // 返回true
    var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
    trees[3] = undefined;
    3 in trees; // 返回true
    
    // 如果一个属性是从原型链上继承来的,in 运算符也会返回 true。
    "toString" in {}; // 返回true

    注意:

    1. 如果指定的属性在指定的对象或其原型链中,则 in 运算符 返回true 
    2. 数组使用时,可以使用 数组下标 来判断,但是不能使用数组元素来判断
    3. Symbol.iterator in 数组;     返回true (数组可迭代,只在ES2015+上有效).

    4. 也可以判断内置对象上的属性。

    5. 使用 delete 运算符删除了一个属性,则 in 运算符对所删除属性返回 false。

    6. 只是将一个属性的值赋值为 undefined,而没有删除它,则 in 运算仍然会返回true。

    7. 对于字符串的属性也可以判断,只是必须是字符串对象 new String() 创建的字符串。

    展开全文
  • JS 判断对象自身是否某个属性

    千次阅读 2022-01-27 17:47:29
    判断自身属性使用 hasOwnProperty,判断自身属性和原型链上的属性使用 in 运算符

    目录

    obj.hasOwnProperty()

    in 运算符


    obj.hasOwnProperty()

    • 判断对象自身属性中是否含有指定的属性,如果有返回 true
    • 属性以字符串的形式存在
    const obj = {a: 1, b: false, c: 'str', d: null, f: 'undefined'}
    if(obj.hasOwnProperty('d')){
      console.log(`对象中有此属性`)
    } else {
      console.log(`对象中无此属性`)
    }

    in 运算符

    • 如果某属性在指定对象或其原型链上则返回 true
    • 不能判断出指定的属性是对象身上的还是原型链上的
    • 只需判断自身属性,使用 hasOwnProperty 属性
    let obj = { a: 1 }
    if ("toString" in obj){
      console.log("对象或其原型链上有此属性")
    }else {
      console.log("对象或其原型链上无此属性")
    }

    展开全文
  • JS对象是否拥有某属性 两种方式,但稍有区别 1,in 运算符 var obj = {name:'jack'}; alert('name' in obj); // --> true alert('toString' in obj); // --> true 可看到无论是name,还是...
  • 判断js对象是否存在某个属性其实有很多方法,选择哪种方法很大程度上看我们的实际业务场景了。下面总结了日常使用的几种方法。 1.hasOwnProperty() const obj = {a: 1, b: 2}; obj.hasOwnProperty('a'); // true ...
  • 判断对象是否存在某个属性

    千次阅读 2020-08-19 14:17:07
    JavaScript判断对象是否存在某个属性或者方法,常用方法有两种hasOwnProperty和in hasOwnProperty是Object原型对象上的一个方法,用来判断对象自身属性中是否具有指定的属性。 这个方法可以用来检测一个对象是否含有...
  • js判断对象为空以及有好几种方法了,但是个人觉得不是特别方便。 比如: 1、把对象通过 JSON.stringify 转为字符串,再判断字符串是否等于 " {} " 2、for in循环,判断key是否存在 3、jq的方法 es6已经帮我们很...
  • js判断对象是否存在某个属性

    千次阅读 2019-03-01 14:13:47
    var o={x:1}; o.hasOwnProperty("x"); //true,自有属性中有x o.hasOwnProperty("y"); //false,自有属性中不存在y
  • js检测对象中是否存在某个属性1.使用in关键字2.使用对象的hasOwnProperty()方法3.使用undefined4.条件语句判断 1.使用in关键字 可以判断对象的自有属性和继承属性是否存在 var obj = { name: 'anna', age: '17' }; '...
  • 转载自白色的海的博客园 ...该方法可以判断对象的自有属性和继承来的属性是否存在。 var o={x:1}; "x" in o; //true,自有属性存在 "y" in o; //false "toString" in o; //true,是一个继承属性 2.使
  • 1. in 运算符 如果指定的属性在指定的对象或其原型链中,则in 运算符返回true...hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性是否具有指定的属性(也就是,是否有指定的键)。 let obj = { a: 1 } co
  • JavaScript 判断对象是否某个属性

    千次阅读 2022-01-13 13:55:41
    判断对象是否有某属性的常见方式总结,不同的场景要使用不同的方式。 一、点( . )或者方括号( [ ] ) 通过点或者方括号可以获取对象的属性值,如果对象上不存在属性,则会返回undefined。当然,这里的“不存在”...
  • js判断对象为空已经有好几种方法了,但是个人觉得不是特别方便。 比如: 1、把对象通过 JSON.stringify 转为字符串,再判断字符串是否等于 " {} " 2、for in循环,判断key是否存在 3、jq的方法 es6已经帮我们很好的...
  • js 判断对象是否包含某个属性

    万次阅读 2019-06-27 14:01:13
    var obj = {name:'张三',age:18}; obj.hasOwnProperty('name'); // --> true obj.hasOwnProperty('id'); // --> false
  • JS 判断对象属性是否存在,判断是否包含某个属性是否为自身属性 判断是否包含某对象 我们知道访问对象属性有两种形式,如下: var obj = { name:'听风是风' }; obj.name; //听风是风 obj['name']; //听风是风 ...
  • 判断对象testDemo是否拥有指定的name属性 1)使用in关键字 console.log(‘name’ in testDemo); 使用这个方法不仅检查到自有属性,并且同时检查当前对象原型共有属性 2)使用对象的hasOwnProperty()方法 console.log...
  • JS判断JSON对象是否存在某个属性

    千次阅读 2019-05-16 11:22:55
    举例: var testJson = { ...判断 testJson是否含有“性别”、“手机号码”属性 if ( "性别" in testJson ) { // "性别" in testJson ==ture;testJson中含有“性别”属性 } if ( !("手机号码”" in te...
  • js判断对象属性是否存在的方法

    千次阅读 2018-08-31 09:49:49
    判断对象是否有某属性的常见方式总结,不同的场景要使用不同的方式。 一、点( . )或者方括号( [ ] )  通过点或者方括号可以获取对象的属性值,如果对象上不存在属性,则会返回undefined。当然,这里的“不...
  • javascript判断对象是否存在属性有三种方法,三种方式各有优缺点,不同的场景使用不同的方式,有时还需要结合使用,比如遍历自身属性的时候,就会把 for ··· in ···和 hasOwnProperty()结合使用。javascript...
  • 判断对象是否有某属性的常见方式总结,不同的场景要使用不同的方式。 一、点( . )或者方括号( [ ] )  通过点或者方括号可以获取对象的属性值,如果对象上不存在属性,则会返回undefined。当然,这里的“不存在...
  • 因为js中如果当前对象没有这个属性,获取时会报错导致项目无法进行 所以使用 if (_item.hasOwnProperty('f_state')) {} 判断当前对象是否有这个属性

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 111,102
精华内容 44,440
关键字:

js判断对象是否存在某个属性