javascript - Javascript 中数组与对象数据类型的区别

标签 javascript jquery ajax

我正在运行一个 AJAX 请求,它返回一个 JSON 格式的响应,如下所示:

{
    name: "gideon",
    class: "knight",
    ...
}

[
    {
        name: "gideon",
        class: "knight",
        ...
    },
    {
        name: "athena",
        class: "mage",
        ...
    },
    ...
    {
        name: "chris",
        class: "B.O.W Agent",
        ....
    }
]

现在,我如何知道调用的返回类型是 Object 还是对象的 Array?我需要对此进行检查(加上其他检查):

$.ajax({
    ...,
    success: function(r) {
        if(/* r is an object */) {

        }
        else if(/* r is an array */) {
            // Perform an iteration
        }
    }
});

我已经针对 Object 对这两个返回值执行了 instanceoftypeof 运算符,但这当然很愚蠢,因为 ArrayObject 的后代,因此它总是返回true

最佳答案

使用Array.isArray()喜欢

$.ajax({
    ...,
    success: function(r) {
        if(Array.isArray(r)) {
            // Perform an iteration
        }
        else if(/* r is an object */) {
        }
    }
});

关于javascript - Javascript 中数组与对象数据类型的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30992997/

相关文章:

javascript - 需要修改 jQuery

ajax - 对 OPTIONS 的 POST 更改 + 对预检请求的响应未通过访问控制检查 : No 'Access-Control-Allow-Origin' header

Javascript 将 X div 从一个父级移动到另一个父级

javascript - 如何调用另一个网页上的js函数?

javascript - 如何修改DIY slider ?

javascript - AJAX请求后获取数据

javascript - ajax-jquery post,服务器未收到任何表单数据

jquery - 经典的Asp持久上传和Jquery Ajax

javascript - “没有打开文档窗口”错误

javascript - 我想访问一个 JS 文件中提供的 enTranslations,如下所示,但我无法访问它