我在这里有一个JS文字符号形式的数据。
data = {
"Project": [
{
"Title": "Project1",
"StartDate": "01/01/2013",
"EndDate": "01/07/2013",
"Status": 1
},
{
"Title": "Project2",
"StartDate": "01/05/2013",
"EndDate": "01/15/2013",
"Status": 2
}
});
var propV;
function validate(data){
for(var key in data){
propV = data[key];
if(typeof propV === 'array){
//alert('array')
}
else if(type propV === 'date'){
//alert('date')
}
else if(type propV === 'string'){
//alert('string')
}
else if(type propV === 'object'){
//alert('object')
}
}
}
对于上面的代码,我期待它显示数组的警报。但是,它会警告对象。 JavaScript中用于检测项目是否为数组的内容?
同样,如果我有与上面相似的数据,我如何检测某个项目是否为日期?现在,如果我尝试这样做,我的日期也是string
答案 0 :(得分:0)
if Object.prototype.toString.call(myObject) == "[object Array]" {
// ...
}
答案 1 :(得分:0)
数组是对象。要测试特定对象是否是Array
“类”的实例(我使用该术语松散),请使用instanceof
运算符:
if (yourThing instanceof Array) {
// it is an array
} else {
// it is not an array
}
答案 2 :(得分:0)
较新的浏览器采用Array.isArray()方法,对于较旧的浏览器,您可以使用MDN的polyfill:
if(!Array.isArray) {
Array.isArray = function (vArg) {
return Object.prototype.toString.call(vArg) === "[object Array]";
};
}
用过:
var isArray = Array.isArray(data.Project); // true or false
答案 3 :(得分:0)
如果你使用jQuery,你可以这样做:
$.isArray(myArray);