javascript檢測物件中是否存在某個屬性
檢測物件中屬性的存在與否可以通過幾種方法來判斷。
方法一:使用in關鍵字
該方法可以判斷物件的自有屬性和繼承來的屬性是否存在(in能檢測到原型鏈的屬性)var cat = {name:'Tom'};
console.log('name' in cat); //true 自有屬性存在
console.log('weight' in cat); //false
console.log('toString' in cat); //true 繼承屬性存在
in關鍵字的使用
//陣列中
//預定義物件//Array var arr = ['cat','pig','dog','monkey','fish']; console.log(0 in arr); //true console.log(4 in arr); //true console.log(5 in arr); //false console.log('pig' in arr); //false 必須指定索引號,而不是該索引的值 console.log('length' in arr); //true length為該陣列的屬性
console.log('PI' in Math); //true
//自定義物件var cat = {name:'Tom',year:10};
console.log('name' in cat); //true
console.log('Tom' in cat); //false
//必須指定一個物件在操作的右邊,比如你可以使用字串建構函式建立字串,而不是指定字串//若使用delete刪除屬性,in操作將返回假var color1 = new String('green'); console.log('length' in color1); //true var color2 ='green'; console.log('length' in color2); //報措color2 is not a String object
var cat = {name:'Tom',year:10};
delete cat.year;
console.log('year' in cat); //false
var arr = ['cat','pig','dog','monkey','fish'];
delete arr[0];
console.log(0 in arr); //false
//如果將某個屬性設定為未定義但是不刪除它,in操作將返回真var cat = {name:'Tom',year:10}; cat.year = undefined; console.log('year' in cat); //true
方法二:.使用物件的hasOwnProperty()方法
var obj = new Object();
obj.prop = 'exist';
function changeObj()
{
obj.newProp = obj.prop;
delete obj.prop;
};
console.log(obj.hasOwnProperty('prop')); // return true 自有屬性存在prop
changeObj();
console.log(obj.hasOwnProperty('prop')); // return false 自有屬性不存在prop
console.log(obj.hasOwnProperty('toString')); //return false 這是一個繼承屬性
hasOwnProperty的使用
//物件屬性迭代
var cat = {Name:'Tom'};
for(var name in cat)
{
if(cat.hasOwnProperty(name))
{
alert('這隻cat'+name+'的名字是'+cat[name]);
}
else
{
alert(name);
}
}
//使用hasOwnProperty作為屬性名
var obj = {
hasOwnProperty: function()
{
return false;
},
bar: 'Hello'
};
console.log(obj.hasOwnProperty('bar')); //false
console.log(({}).hasOwnProperty.call(obj,'bar')); //true
console.log(Object.prototype.hasOwnProperty.call(obj, 'bar'));<span style="font-family: Arial, Helvetica, sans-serif;">//true</span>
方法三:.使用undefined方法
自有屬性和繼承屬性均可判斷。var cat = {name:'Tom'};
console.log(cat.name!==undefined); //true
console.log(cat.weight!==undefined); //false
console.log(cat.toString!==undefined); //true
該方法存在一個問題,如果屬性的值就是undefined的話,該方法不能返回想要的結果,如下。
var cat = {name:'undefined'};
console.log(cat.name!==undefined); //false 屬性存在 但是值是undefined
console.log(cat.weight!==undefined); //false
console.log(cat.toString!==undefined); //true
相關推薦
javascript檢測物件中是否存在某個屬性
檢測物件中屬性的存在與否可以通過幾種方法來判斷。 方法一:使用in關鍵字 該方法可以判斷物件的自有屬性和繼承來的屬性是否存在(in能檢測到原型鏈的屬性) var cat = {name:'Tom'};
javascript,檢測物件中是否存在某個屬性
檢測物件中屬性的存在與否可以通過幾種方法來判斷。1.使用in關鍵字。該方法可以判斷物件的自有屬性和繼承來的屬性是否存在。var o={x:1}; "x" in o; //true,自有屬性存在 "y" in o; //false "
js判斷json物件中是否含有某個屬性
for(var item in data.resultObject) { if(!data.resultObject[item].hasOwnProperty("startTime")){
JavaScript 獲取物件中第一個屬性
使用 Object.keys(object) 可以取出屬性名為陣列,但會打亂順序 嚴格意義上物件中是隻有對映關係而沒有順序的,但是在儲存結構裡是有順序的,如果想獲取儲存結構裡的第一個屬性可以使用for
檢查物件或是類中否存在該屬性 property_exists
public function __set($name ,$value) { if(property_exists($this,$name)) //這句,賦值前判斷是否已經存在這個屬性,如果存在進行賦
js篇-判斷陣列物件中是否含有某個值,並返回該條資料
專案背景需求是: 已知: var a=[{name:'jenny',age:18},{name:'john',age:19},{name:'jack',age:20}] var b ='jenny' 返回: {name:'jenny',age:18} 解題思路:現將陣列轉成字串,判斷改陣列中是否存
物件轉JSONArray,JSONObject[包括物件中日期格式化,屬性過濾]
建立時間轉換器import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import net.sf.json.JsonConfig; import net.sf
判斷陣列物件中是否包含某個物件,判斷2個物件是否相等
var arr =[ {name:'zhangsan'}, {name:'lisi'}, {name:'wangwu'} ]; var json1 = {name:"zhangsan"}; // 方法一:(相容ie8) console.log(JSON.stri
dom物件中常見節點的屬性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <script> onload
spring的注入引數(bean物件中又有bean屬性),beans.xml配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.o
re模組中match物件中的方法和屬性
match物件的方法和屬性 屬性和方法 描述 pos 搜尋的開始位置 endpos 搜尋的結束位置 string 搜尋
按照List中Object的某個屬性進行分組
/** * * 按照List中Object的某個屬性contNo,進行分組 * * @author fuqin * create on 2009-12-11 * * @param list * @return */ public static Map ge
使用Javascript判斷元素中是否含有某個樣式
tip:引入了Moment.js格式化前端頁面顯示時間 假設我們有如下元素 <div id="LL" class="a b hello-world"></div> 1.簡單正則匹配法 即使用正則判斷單詞邊界的方式判斷是
怎麽判斷對象obj中是否含有某個屬性以及怎麽刪除對象中的某個屬性
屬性 con efi [ ] var string let bject 判斷 一:判斷對象object中是否含有某個屬性 1:點( . )或者方括號( [ ] )(可以根據 Obj.x !== undefined 的返回值 來判斷Obj是否有x屬性) // 創建對象 let
javascript中對一個物件陣列按照物件某個屬性進行排序
在javascript中,物件和陣列是兩種不同的型別,這和php中的陣列概念不同。在javascript中,也有一些精妙的演算法,用來對一些物件進行排序。我在面試迅雷的時候,也拿到一道題,當時做題的時候考慮到時間,沒有去仔細研究,回來後再讀了一些方法,就知道真正的考點在哪裡了。 我們現在有一組“學
JavaScript 深入瞭解物件中的屬性
轉載:JavaScript 深入瞭解物件中的屬性 JavaScript 深入瞭解物件中的屬性 本篇主要介紹JS中物件的屬性,包括:屬性的分類、訪問方式、檢測屬性、遍歷屬性以及屬性特性等內容。 目錄 1. 介紹:描述屬性的命名方式、查詢路徑以及分類 2. 屬
根據物件中的某個屬性進行 物件排序
遇到涉及到物件排序的問題,之前做過一次 又忘了,再次做一次記錄 // 物件類 public class PlayerRankVoData { public int id; public in
根據物件某個屬性,查詢List集合中是否包該屬性的物件集合。
package com.crland.ims.service.util; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import java.util.
【JavaScript】中列舉物件中的屬性
有時候,拿到別人的程式碼,我們並不知道某一個物件擁有哪些屬性和屬性值,這個時候別慌,我們可以通過for in 語句來獲取物件裡的屬性和屬性值,(最底部有原始碼,可複製) 語法:for(變數名 in 物件名){ (迴
根據物件中某一屬性進行升序降序排序的javascript實現
背景知識: sort() 方法用於對陣列的元素進行排序,並返回陣列。預設排序順序是根據字串Unicode碼點。 語法:arrayObject.sort(sortby);引數sortby可選。規定排序順序。必須是函式。 注:如果呼叫該方法時沒有使用引數,將按