国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JS判斷對(duì)象、數(shù)組是否包含某個(gè)屬性、某個(gè)值

這篇具有很好參考價(jià)值的文章主要介紹了JS判斷對(duì)象、數(shù)組是否包含某個(gè)屬性、某個(gè)值。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、判斷對(duì)象是否包含某個(gè)屬性

可以使用以下幾種方法來(lái)判斷對(duì)象是否包含某個(gè)屬性:

1. in 操作符:

使用 in 操作符可以檢查對(duì)象是否包含指定的屬性。它會(huì)檢查對(duì)象及其原型鏈上的所有屬性。

const obj = { name: 'John', age: 25 };
console.log('name' in obj); // 輸出: true
console.log('gender' in obj); // 輸出: false

2. hasOwnProperty() 方法:

hasOwnProperty() 是對(duì)象的內(nèi)置方法,用于檢查對(duì)象自身是否具有指定的屬性(不包括原型鏈上的屬性)。

const obj = { name: 'John', age: 25 };
console.log(obj.hasOwnProperty('name')); // 輸出: true
console.log(obj.hasOwnProperty('gender')); // 輸出: false

3. 使用 undefined 進(jìn)行判斷:

通過訪問對(duì)象的屬性并與 undefined 進(jìn)行比較,可以判斷對(duì)象是否包含該屬性。

但當(dāng) obj 為null 或 undefined 時(shí)會(huì)報(bào)錯(cuò)。

const obj = { name: 'John', age: 25 };
console.log(obj.name !== undefined); // 輸出: true
console.log(obj.gender !== undefined); // 輸出: false

4. 使用 Object.keys() 方法:

Object.keys() 方法返回一個(gè)包含對(duì)象自身可枚舉屬性的數(shù)組。您可以使用該方法來(lái)獲取對(duì)象的所有屬性,并判斷指定屬性是否存在于返回的數(shù)組中。

const obj = { name: 'John', age: 25 };
console.log(Object.keys(obj).includes('name')); // 輸出: true
console.log(Object.keys(obj).includes('gender')); // 輸出: false

備注:這些方法可以根據(jù)您的需求選擇使用,以判斷對(duì)象是否包含某個(gè)屬性。請(qǐng)注意,前三種方法在屬性值為 undefined 時(shí)也會(huì)返回 true,而最后一種方法不會(huì)將 undefined 視為存在的屬性。

5. 使用 Reflect.has(obj , keyName) 方法:

Reflect.has(obj, name)
Reflect.has方法對(duì)應(yīng)name in obj里面的in運(yùn)算符。
如果Reflect.has()方法的第一個(gè)參數(shù)不是對(duì)象,會(huì)報(bào)錯(cuò)。

 let obj = {
     name: '再努力些吧',
     age: 18,
     work: '前端',
 }
 // 舊寫法
 console.log('age' in obj);//true
 console.log('sex' in obj);//false
 // 新寫法
 console.log(Reflect.has(obj, 'age'));//true
 console.log(Reflect.has(obj, 'sex'));//false

6、propertyIsEnumerable() 相當(dāng)于 hasOwnProperty() 的增強(qiáng)版

這個(gè)方法的用法與hasOwnProperty()相同,但當(dāng)檢測(cè)屬性是自有屬性(非繼承)且這個(gè)屬性是可枚舉的,才會(huì)返回true。

方便記憶可以理解為:

  1. in: 只要對(duì)象包含某個(gè)屬性就返回true, 包含原型鏈上的屬性
  2. hasOwnProperty: 首先滿足in, 其次屬性不屬于原型鏈
  3. propertyIsEnumerable: 首先滿足hasOwnProperty,其次該屬性未經(jīng)由Object.defineProperty定義為不可列舉
/* 如下例子我就不寫了引用別人的。作者:Netmad,來(lái)源:知乎,
鏈接:https://www.zhihu.com/question/21907133/answer/378501127  */
function foo() {
  this.id = 'id';
}
foo.prototype.common = 'common';
var o = new foo();

'id' in o; // true
'common' in o; // true
'whatever' in o; // false
o.hasOwnProperty('id'); //true
o.hasOwnProperty('common'); //false
o.propertyIsEnumerable('id'); //true
o.propertyIsEnumerable('common'); //false
// 目前為止, hasOwnPerproty和propertyIsEnumerable看上去沒啥差別
// 通過Object.defineProperty定義新的屬性
Object.defineProperty(o, 'prop', {
  value: 'valueOfProp',
  enumerable: false
});
o.prop; // valueOfProp
o.hasOwnProperty('prop'); // true
o.propertyIsEnumerable('prop'); //false
// 如果defineProperty時(shí)enumerable為true, 那么這里依然和hasOwnProperty一樣

以上方法都可以判斷出對(duì)象是否包含某個(gè)屬性,工作中可以根據(jù)不同情況采用不同的方法。

二、判斷數(shù)組中是否包含某個(gè)值

可以使用以下幾種方法來(lái)判斷數(shù)組中是否包含某個(gè)值:

1. includes() 方法:

includes() 方法用于檢查數(shù)組是否包含指定的值,并返回一個(gè)布爾值。

const arr = [1, 2, 3, 4, 5];
console.log(arr.includes(3)); // 輸出: true
console.log(arr.includes(6)); // 輸出: false

2. indexOf() 方法:

indexOf() 方法返回指定值在數(shù)組中的第一個(gè)匹配項(xiàng)的索引,如果不存在則返回 -1。

const arr = [1, 2, 3, 4, 5];
console.log(arr.indexOf(3) !== -1); // 輸出: true
console.log(arr.indexOf(6) !== -1); // 輸出: false

3. find() 方法:

find() 方法返回?cái)?shù)組中滿足提供的測(cè)試函數(shù)的第一個(gè)元素的值,如果不存在則返回 undefined。

const arr = [1, 2, 3, 4, 5];
console.log(arr.find(element => element === 3) !== undefined); // 輸出: true
console.log(arr.find(element => element === 6) !== undefined); // 輸出: false

4. some() 方法:

some() 方法測(cè)試數(shù)組中是否至少有一個(gè)元素通過了提供的測(cè)試函數(shù),返回一個(gè)布爾值。

const arr = [1, 2, 3, 4, 5];
console.log(arr.some(element => element === 3)); // 輸出: true
console.log(arr.some(element => element === 6)); // 輸出: false

備注:這些方法可以根據(jù)您的需求選擇使用,以判斷數(shù)組中是否包含某個(gè)值。請(qǐng)注意,前三種方法在比較值時(shí)使用的是嚴(yán)格相等運(yùn)算符(===),而 some() 方法則通過測(cè)試函數(shù)來(lái)進(jìn)行判斷。

5. findIndex() 方法:

返回值:如果找到滿足條件的元素,則返回該元素的索引(大于等于 0);如果沒有找到滿足條件的元素,則返回 -1。
判斷方式:通過提供的測(cè)試函數(shù)對(duì)數(shù)組中的每個(gè)元素進(jìn)行判斷,直到找到滿足條件的元素為止。
示例:

const arr = [1, 2, 3, 4, 5];
console.log(arr.findIndex(element => element === 3)); // 輸出: 2
console.log(arr.findIndex(element => element === 6)); // 輸出: -1

以上5種都是ES6增加的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-702705.html

到了這里,關(guān)于JS判斷對(duì)象、數(shù)組是否包含某個(gè)屬性、某個(gè)值的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • JavaScript判斷數(shù)組對(duì)象是否含有某個(gè)值的方法(6種)

    JavaScript判斷數(shù)組對(duì)象是否含有某個(gè)值的方法(6種)

    文章內(nèi)容 文章鏈接 vue3 antd table表格的增刪改查(一) input輸入框根據(jù)搜索【后臺(tái)管理系統(tǒng)純前端filter過濾】 https://blog.csdn.net/XSL_HR/article/details/128072584?spm=1001.2014.3001.5501 vue3 antd table表格的增刪改查(二) input輸入框根據(jù)搜索【后臺(tái)管理系統(tǒng) 請(qǐng)求后端接口 前后端

    2024年02月06日
    瀏覽(28)
  • js判斷對(duì)象是否擁有某個(gè)key

    方法一 : \\\"key\\\" in obj ,結(jié)果為 false,表示不包含;否則表示包含 方法二 : obj.hasOwnProperty(\\\"key\\\") ,obj 表示對(duì)象,結(jié)果為 false 表示不包含;否則表示包含 這兩種方法都可以用于檢查對(duì)象是否包含指定的屬性,但它們有一些區(qū)別。 “key” in obj: 這種方法使用 in 運(yùn)算符來(lái)檢查屬

    2024年02月08日
    瀏覽(27)
  • js判斷對(duì)象數(shù)組中的元素是否存在重復(fù)

    ?1、使用? Array.some() ?方法和自定義比較函數(shù): 使用? Array.some() ?方法遍歷數(shù)組,對(duì)每個(gè)元素執(zhí)行自定義的比較函數(shù)。比較函數(shù)使用? Array.findIndex() ?方法來(lái)查找與當(dāng)前元素相等且索引不同的元素,如果找到則表示存在重復(fù)元素。 2、使用? Set ?數(shù)據(jù)結(jié)構(gòu): 使用? Set ?數(shù)據(jù)結(jié)

    2024年02月13日
    瀏覽(97)
  • js之刪除對(duì)象屬性的三種方法 & 判斷對(duì)象中是否有某一屬性的四種方法

    js之刪除對(duì)象屬性的三種方法 判斷對(duì)象中是否有某一屬性的四種方法 示例 1、基礎(chǔ)版 2、進(jìn)階版 1、刪除一個(gè)對(duì)象上的屬性 1.1、delete 語(yǔ)法 delete 對(duì)象.屬性名 1.2、es6之解構(gòu)賦值 1.3、es6之反射 語(yǔ)法 Reflect.deleteProperty(對(duì)象,屬性名) 2、判斷對(duì)象中是否有某一屬性的四種方法 2.1、

    2024年02月13日
    瀏覽(21)
  • mysql數(shù)據(jù)庫(kù)存數(shù)組類型數(shù)據(jù),如何判斷數(shù)組中是否包含某個(gè)值?使用mybatisplus查詢。

    mysql數(shù)據(jù)庫(kù)存數(shù)組類型數(shù)據(jù),如何判斷數(shù)組中是否包含某個(gè)值?使用mybatisplus查詢。

    跟mybatisplus中.in()方法相反的函數(shù) mybatisplus的in函數(shù):查詢的是數(shù)據(jù)庫(kù)的某個(gè)屬性的值是否在給定的集合中。這里我們講的是一個(gè)值是否在數(shù)據(jù)庫(kù)的某個(gè)屬性數(shù)組中。 說明: 這是一張學(xué)生信息表,其中包含了學(xué)生曾經(jīng)就讀過的學(xué)校?,F(xiàn)在我們要做的就是查詢哪些學(xué)生就讀過指

    2024年02月16日
    瀏覽(228)
  • JavaScript對(duì)象數(shù)組根據(jù)某個(gè)屬性值篩選分類

    ?? 作者 : coderYYY ?? 個(gè)人簡(jiǎn)介 :前端程序媛,目前主攻 web前端 ,后端輔助,其他技術(shù)知識(shí)也會(huì)偶爾分享??歡迎和我一起交流!??(評(píng)論和私信一般會(huì)回!!) ?? 個(gè)人專欄推薦 :《前端項(xiàng)目教程以及代碼》 在開發(fā)中,這種需求還是挺常見的,常用于處理后端返回的數(shù)據(jù)

    2024年02月06日
    瀏覽(25)
  • JS兩種方法判斷字符串是否包含中文

    第一種是正則表達(dá)式來(lái)判斷,判斷輸入的字符中是否包含中文。 第二種是通過charCodeAt()來(lái)判斷,字符串.charCodeAt(index)255 就是中文,否則是英文。

    2024年02月13日
    瀏覽(30)
  • 使用js判斷l(xiāng)ist中是否含有某個(gè)字符串,存在則刪除,

    使用js判斷l(xiāng)ist中是否含有某個(gè)字符串,存在則刪除,

    顯示上圖中使用了兩種方式, 左邊的是filter將不等于userCode的元素篩選出來(lái)組成一個(gè)新的list, 但是上面這個(gè)方法在 IE瀏覽器中不支持 , 所以改成了右邊的方法,使用splice: splice傳入兩個(gè)參數(shù),第一個(gè)參數(shù)是要?jiǎng)h除的元素的索引位置,第二個(gè)是從這個(gè)索引往后刪除幾個(gè);

    2024年01月24日
    瀏覽(100)
  • 前端基礎(chǔ)面試題:如何判斷對(duì)象是否具有某屬性?遍歷數(shù)組的方法有哪些?

    前端基礎(chǔ)面試題:如何判斷對(duì)象是否具有某屬性?遍歷數(shù)組的方法有哪些?

    一、如何判斷對(duì)象具有某屬性? 如: let obj={name:\\\'zhangsan\\\',age:21} 有以下方法 ( property 為屬性名的變量,實(shí)際上是key,鍵名): 1. property in obj 效果如圖: in 運(yùn)算符 2. Reflect.has(obj, property) 效果如圖: 關(guān)于 Reflect: ① 它是JS的一個(gè)內(nèi)置對(duì)象,無(wú)構(gòu)造函數(shù),可以用它遍歷對(duì)象的key,如

    2023年04月08日
    瀏覽(98)
  • Js如何判斷兩個(gè)數(shù)組是否相等?

    Js如何判斷兩個(gè)數(shù)組是否相等?

    日常開發(fā),時(shí)不時(shí)會(huì)遇到需要判定2個(gè)數(shù)組是否相等的情況,需要實(shí)現(xiàn)考慮的場(chǎng)景有: 先判斷長(zhǎng)度,長(zhǎng)度不等必然不等 元素位置 其他情況考慮 \\\'1\\\' 和 1 (Object的key是字符串, Map的key沒有限制) NaN null 和 undefined 數(shù)組自帶的方法,比較適合的有: every、some、filter、findIndex 。 這種

    2024年02月22日
    瀏覽(93)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包