繁体   English   中英

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

[英]How to get all values from a JavaScript object (that contains an array of objects) using 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]

谢谢。


添加来解释为什么这不是重复的:这只是我的观点,但是从我坐的位置来看,我的问题非常简单:我想一口气输出一个对象的所有值。 我没有检查缺失值。 在另一个线程中,很明显,查询是关于检查缺失值,而不是在我问怎么做时在一个函数调用中输出所有值。 在此线程中,我在下面的评论中介绍了重复的比较。 我没有说出我的问题来寻找任何遗漏的东西,而且我知道我不会读那个线程来找到我的答案。 想一想,当我开始在“ 标题”框中键入我的问题时,这个问题(您列出以供比较) 从未出现过-我阅读了标题框中显示的所有建议以作为答案,以及请先在页面右侧显示,然后再花时间将所有内容写出来。 我再也无法解释了。 谢谢。

不知道这是否正是您要的内容,但是您可以:

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

使用JSON.stringify(汽车)

另外,您可以使用cars.toString() ,除非它是一些内置函数,否则它将起作用,但是不会转换嵌套对象。

两者之间存在细微的差异 ,但两者都应达到您的期望

将您的汽车数组传递给此函数:

$.getJSON(your_variable, function (data){
  $.each(data, function(key, val) {
   for(var i in val) {
   console.log("owner is: " + val[i].owner);
   console.log("make is: " + val[i].make);
   console.log("model is " + val[i].model);
   console.log("year is " + val[i].year);
   console.log("color is " + val[i].color);
   }
  });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM