paw*_*wel 117
现代浏览器支持该Array.isArray(obj)方法.
= 2008年的原始答案 =
您可以使用输出的constuctor属性:
if(output.constructor == Array){
}
else if(output.constructor == Object){
}
Run Code Online (Sandbox Code Playgroud)
Bor*_*gar 27
对象:
function isObject ( obj ) {
return obj && (typeof obj === "object");
}
Run Code Online (Sandbox Code Playgroud)
是数组:
function isArray ( obj ) {
return isObject(obj) && (obj instanceof Array);
}
Run Code Online (Sandbox Code Playgroud)
因为数组是对象,所以如果变量首先是一个数组,那么你将要测试它,然后如果它是一个对象:
if (isArray(myObject)) {
// do stuff for arrays
}
else if (isObject(myObject)) {
// do stuff for objects
}
Run Code Online (Sandbox Code Playgroud)
你的意思是"对象"而不是"哈希"吗?
>>> var a = [];
>>> var o = {};
>>> a instanceof Array
true
>>> o instanceof Array
false
Run Code Online (Sandbox Code Playgroud)
我做了一个函数来确定它是否是字典.
exports.is_dictionary = function (obj) {
if(!obj) return false;
if(Array.isArray(obj)) return false;
if(obj.constructor != Object) return false;
return true;
};
// return true
test.equal(nsa_utils.is_dictionary({}), true);
test.equal(nsa_utils.is_dictionary({abc:123, def:456}), true);
// returns false
test.equal(nsa_utils.is_dictionary([]), false);
test.equal(nsa_utils.is_dictionary([123, 456]), false);
test.equal(nsa_utils.is_dictionary(null), false);
test.equal(nsa_utils.is_dictionary(NaN), false);
test.equal(nsa_utils.is_dictionary('hello'), false);
test.equal(nsa_utils.is_dictionary(0), false);
test.equal(nsa_utils.is_dictionary(123), false);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34814 次 |
| 最近记录: |