怎樣證明一個對象是數組 如何判斷json字符串是對象還是數組?
如何判斷json字符串是對象還是數組?oc的數組NSArray本身就是一個類,其實例那就是一個對象。。。確定有沒數組,在換取的結果idresultObj可可以確定if([resultObjisKind
如何判斷json字符串是對象還是數組?
oc的數組NSArray本身就是一個類,其實例那就是一個對象。
。。確定有沒數組,在換取的結果idresultObj可可以確定if([resultObjisKindofClass[NSArrayclass]]){//是一個array}argumentsif([resultObjisKindofClass[NSDictionaryclass]]){//是一個字典}
react怎么判斷state里面是一個數組?
方法一:使用instanceof方法
instanceof應用于判斷一個變量有無某個對象的實例,左邊操作數是一個對象,右邊操作數是一個函數對象的或函數構造器。原理是按照推測左操作數的對象的原型鏈上如何確定更具右操作數的構造函數的prototype屬性。
ainstanceofbalert(true):alert(false)//注意一點b值是你的想可以確定的那種數據類型,并非一個字符串,比如說Array。
舉一個例子:
vararr[];
console.log(arrinstanceofArray)//返回true
方法二:不使用constructor方法
在W3C定義中的定義:constructor屬性趕往對創建戰隊此對象的數組函數的摘錄,那就是趕往對象相對應的構造函數。從定義上來說跟instanceof不太完全不同,但效果也是一樣的的。
這樣的話推測各種類型的方法:
console.log([].constructorArray);//true
console.log({}.constructorObject);//true
console.log(String);//true
console.log((123).constructorNumber);//true
console.log(Boolean);//true
盡量:
可以使用instaceof和construcor,被推測的array前提是是在當前頁面聲明的!諸如,一個頁面(父頁面)有一個框架,框架中語句了一個頁面(子頁面),在子頁面中聲明了一個array,并將其定義變量給父頁面的一個變量,這時可以確定該變量,Array;會返回false;
原因:
1、array不屬于摘錄型數據,在傳遞過程中,不僅僅是語句地址的傳遞。
2、每個頁面的Array原生對象所直接引用的地址是都一樣的,在子頁面聲明的array,所對應的構造函數,是子頁面的Array對象;父頁面來進行判斷,不使用的Array的確等于零子頁面的Array。
方法三:不使用(arr)[objectArray]方法
functionisArray(o){
return(o);
}
vararr[2,5,6,8];
varstring{name:zhangsan,age:25};
varfnfunction(){}
console.log(isArray(arr));//[objectArray]
console.log(isArray(string));//[objectObject]
console.log(isArray(fn));//[objectfunction]
方法四:ES5定義了
([])//true