javascript - 如何使用 javascript 从 JavaScript 对象(包含对象数组)获取所有值

标签 javascript

自从我使用 JavaScript 以来已经有一段时间了,我只是出于好奇而试图想出用 JavaScript 做事的不同方法。有人能告诉我如何在单个函数调用中输出 cars 对象中的所有数据吗?我知道我可以使用点表示法单独输出特定值,但我想知道是否/如何一次性获取对象中 cars 对象中每个对象的所有值。这可能吗?

var cars = [{
    car1: {
        "owner": "lois",
            "make": "chevy",
            "model": "malibu",
            "year": "2011",
            "color": "red"
    }
}, {
    car2: {
        "owner": "jeff",
            "make": "ford",
            "model": "focus",
            "year": "2002",
            "color": "silver"
    }
}, {
    car3: {
        "owner": "bob",
            "make": "chrysler",
            "model": "pacifica",
            "year": "2008",
            "color": "blue"
    }
}, {
    car4: {
        "owner": "sallie",
            "make": "toyota",
            "model": "corolla",
            "year": "2011",
            "color": "black"
    }
}];




function carOwners(obj_arr) {
    //this.ownerName2 = cars[1].owner;
    //this.ownerName3 = cars[2].owner;
    //this.ownerName4 = cars[3].owner;
    /* console.log("The vehicle owner's name are " + ownerName1 + ", " + ownerName2 + ", " + ownerName3 + ", and " + ownerName4 + ".");  */

    for (var i = 0, len = cars.length; i < len; i++) {
        for (var key in cars) {
            console.log(' name=' + key + ' value=' + cars[key]);
        }
    }

}

carOwners(cars);
//carOwners(cars[1].owner);
//carOwners(cars[2].owner);
//carOwners(cars[3].owner);

当我运行该函数时,我得到以下结果(在 Chrome 中打开控制台),但这不是我想要的。我想查看每个(解析对象)的数据,而不是数据类型。

name=0 value=[object Object]
name=1 value=[object Object]
name=2 value=[object Object]
name=3 value=[object Object]
name=0 value=[object Object]
name=1 value=[object Object]
name=2 value=[object Object]
name=3 value=[object Object]
name=0 value=[object Object]
name=1 value=[object Object]
name=2 value=[object Object]
name=3 value=[object Object]
name=0 value=[object Object]
name=1 value=[object Object]
name=2 value=[object Object]
name=3 value=[object Object]

谢谢。


ADDED 来解释为什么这不是重复的: 这只是我的意见,但从我的 Angular 来看,我的问题很简单:我想一次性输出一个对象的所有值。我没有检查缺失值。在另一个线程中非常明显,查询是关于检查缺失值,而不是像我问的那样在一个函数调用中输出所有值。在此线程中,我在下面的评论中解决了重复比较。我没有提出我的问题来寻找任何遗漏的东西,而且我知道我不会阅读该线程来找到我的答案。想一想,当我开始在标题框中输入我的问题时,那个问题(您为了比较列出的)从未出现——我读到在花时间写下所有这些之前,在我的答案的标题框中以及页面右侧显示的每条建议。我没有比这更好的解释了。谢谢。

最佳答案

不确定这是否正是您要问的,但您可以这样做:

console.log(JSON.stringify(cars));

关于javascript - 如何使用 javascript 从 JavaScript 对象(包含对象数组)获取所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32407662/

相关文章:

javascript - 在 JavaScript 中实现 Luhn 算法

javascript - 从 chrome 扩展中的谷歌分析 api 获取数据?

javascript - AngularJS + RequireJS——未知的提供商,Angular Bug?

javascript - "Save to Drive"按钮可以/需要手动清理吗?

javascript - 可滚动的 primeng 数据表模板标题

javascript - 为什么这个 promise 返回未定义?

javascript - 按嵌套属性路径排序时的 Breeze 1.4.0 内联计数

javascript - 运行此js代码后占位符的文本消失

asp.net - window.returnValue 属性允许的最大长度是多少? (JavaScript)

javascript - 如何删除所有具有 null id 的元素