オブジェクトの配列はなぜ配列ではなくオブジェクトとみなされるのでしょうか? たとえば、次のようになります。
$.ajax({
url: 'http://api.twitter.com/1/statuses/user_timeline.json',
data: { screen_name: 'mick__romney'},
dataType: 'jsonp',
success: function(data) {
console.dir(data); //Array[20]
alert(typeof data); //Object
}
});
ベストアンサー1
Javascript の奇妙な動作と仕様の 1 つは、typeof Array ですObject
。
変数が配列であるかどうかは、いくつかの方法で確認できます。
var isArr = data instanceof Array;
var isArr = Array.isArray(data);
しかし、最も信頼できる方法は次のとおりです。
isArr = Object.prototype.toString.call(data) == '[object Array]';
質問に jQuery のタグを付けたので、jQueryisArray
関数を使用できます。
var isArr = $.isArray(data);