-
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如何判断对象是否包含某个属性
2020-10-14 20:44:53主要介绍了JS如何判断对象是否包含某个属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 -
javascript检测对象中是否存在某个属性判断方法小结
2020-10-27 09:22:44检测对象中属性的存在与否可以通过以下几种方法来判断:使用in关键字、使用对象的hasOwnProperty()方法、用undefined判断、在条件语句中直接判断,感兴趣的朋友可以了解下哈 -
js判断对象是否存在某个属性
2020-06-21 22:51:13判断对象是否存在某个属性 // 判断对象中是否存在某个属性 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]); }
-
判断js对象是否拥有某一个属性的js代码
2020-12-11 12:49:01代码如下: var obj = {name:’jack’}; obj.hasOwnProperty(‘name’); // –> true obj.hasOwnProperty(‘toString’); // –> false -
js判断对象上是否含有某个属性
2022-03-17 16:50:33一、对象.hasOwnProperty('属性') let obj = { name: 'll', age: 189 }; console.log(obj.hasOwnProperty('age')); // true console.log(obj.hasOwnProperty('name')); // true console.log(obj.hasOwnProperty...目录
根据业务不同选择不同的方式来判断对象上是否有该属性
一、对象.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
注意:
- 和原型没关系 ,不会查找原型上的属性。
- 只判断自身属性的场景。
二、点( . )或者方括号( [ ] )
使用
对象.属性 != 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
注意:
- 会查找原型链上的属性。
- 不能用在对象的属性值存在,属性值为 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
注意:
- 如果指定的属性在指定的对象或其原型链中,则
in
运算符 返回true
。 - 数组使用时,可以使用 数组下标 来判断,但是不能使用数组元素来判断。
-
Symbol.iterator in 数组; 返回true (数组可迭代,只在ES2015+上有效).
-
也可以判断内置对象上的属性。
-
使用 delete 运算符删除了一个属性,则
in
运算符对所删除属性返回false。
-
只是将一个属性的值赋值为 undefined,而没有删除它,则
in
运算仍然会返回true。
-
对于字符串的属性也可以判断,只是必须是字符串对象 new String() 创建的字符串。
-
JS 判断对象自身是否有某个属性
2022-01-27 17:47:29判断自身属性使用 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对象是否拥有某属性如何判断
2020-12-10 01:28:16JS对象是否拥有某属性 两种方式,但稍有区别 1,in 运算符 var obj = {name:'jack'}; alert('name' in obj); // --> true alert('toString' in obj); // --> true 可看到无论是name,还是... -
如何判断js对象是否存在某个属性?
2021-08-23 17:26:10判断js对象是否存在某个属性其实有很多方法,选择哪种方法很大程度上看我们的实际业务场景了。下面总结了日常使用的几种方法。 1.hasOwnProperty() const obj = {a: 1, b: 2}; obj.hasOwnProperty('a'); // true ... -
判断对象是否存在某个属性
2020-08-19 14:17:07JavaScript判断对象是否存在某个属性或者方法,常用方法有两种hasOwnProperty和in hasOwnProperty是Object原型对象上的一个方法,用来判断对象自身属性中是否具有指定的属性。 这个方法可以用来检测一个对象是否含有... -
js/es6判断对象是否为空,并判断对象是否包含某个属性
2019-10-21 10:08:26js判断对象为空以及有好几种方法了,但是个人觉得不是特别方便。 比如: 1、把对象通过 JSON.stringify 转为字符串,再判断字符串是否等于 " {} " 2、for in循环,判断key是否存在 3、jq的方法 es6已经帮我们很... -
js判断对象中是否存在某个属性
2019-03-01 14:13:47var o={x:1}; o.hasOwnProperty("x"); //true,自有属性中有x o.hasOwnProperty("y"); //false,自有属性中不存在y -
js检测对象中是否存在某个属性
2021-07-08 10:54:49js检测对象中是否存在某个属性1.使用in关键字2.使用对象的hasOwnProperty()方法3.使用undefined4.条件语句判断 1.使用in关键字 可以判断对象的自有属性和继承属性是否存在 var obj = { name: 'anna', age: '17' }; '... -
javascript - 检测对象中是否存在某个属性
2018-01-12 10:04:37转载自白色的海的博客园 ...该方法可以判断对象的自有属性和继承来的属性是否存在。 var o={x:1}; "x" in o; //true,自有属性存在 "y" in o; //false "toString" in o; //true,是一个继承属性 2.使 -
js检测对象中是否存在某个属性 关系运算符 in 和 Object.prototype.hasOwnProperty() 区别
2021-09-10 20:32:081. in 运算符 如果指定的属性在指定的对象或其原型链中,则in 运算符返回true...hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)。 let obj = { a: 1 } co -
JavaScript 判断对象中是否有某个属性
2022-01-13 13:55:41判断对象中是否有某属性的常见方式总结,不同的场景要使用不同的方式。 一、点( . )或者方括号( [ ] ) 通过点或者方括号可以获取对象的属性值,如果对象上不存在该属性,则会返回undefined。当然,这里的“不存在”... -
js、es6判断对象是否为空,判断对象是否包含某个属性
2021-07-12 11:39:37js判断对象为空已经有好几种方法了,但是个人觉得不是特别方便。 比如: 1、把对象通过 JSON.stringify 转为字符串,再判断字符串是否等于 " {} " 2、for in循环,判断key是否存在 3、jq的方法 es6已经帮我们很好的... -
js 判断对象中是否包含某个属性
2019-06-27 14:01:13var obj = {name:'张三',age:18}; obj.hasOwnProperty('name'); // --> true obj.hasOwnProperty('id'); // --> false -
JavaScript 判断对象属性是否存在(对象是否包含某个属性)
2021-01-04 10:28:14JS 判断对象属性是否存在,判断是否包含某个属性,是否为自身属性 判断是否包含某对象 我们知道访问对象属性有两种形式,如下: var obj = { name:'听风是风' }; obj.name; //听风是风 obj['name']; //听风是风 ... -
判断对象中是否存在某个属性
2021-10-29 11:47:22判断对象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如何判断对象是否存在某属性?
2021-06-12 04:17:05javascript判断对象是否存在某属性有三种方法,三种方式各有优缺点,不同的场景使用不同的方式,有时还需要结合使用,比如遍历自身属性的时候,就会把 for ··· in ···和 hasOwnProperty()结合使用。javascript... -
JavaScript 判断对象中是否存在某个属性的常用方法
2020-01-21 13:29:55判断对象中是否有某属性的常见方式总结,不同的场景要使用不同的方式。 一、点( . )或者方括号( [ ] ) 通过点或者方括号可以获取对象的属性值,如果对象上不存在该属性,则会返回undefined。当然,这里的“不存在... -
JS判断当前对象是否存在某个属性
2019-11-27 21:27:44因为js中如果当前对象没有这个属性,获取时会报错导致项目无法进行 所以使用 if (_item.hasOwnProperty('f_state')) {} 判断当前对象中是否有这个属性
收藏数
111,102
精华内容
44,440