2016-08-16 70 views
0

我有一个对象数组,每个对象都有一些属性。我怎么能只返回一个属性的所有对象的键和数组在一起?返回键和对象中的属性值

现在,我只得到了价值

这将返回对象的数组:

var columnWidth = $('#grid').data('gridData').columns; 

此返回属性命名的宽度值从每个对象的数组:

columnWidth.map(function(e) {return e.width;}); 

现在我回来的是这样的:

[30, 50, 80, 80, 90, 125] 

我想回去是什么:

["Width":30, "Width":50, "Width":80, "Width":80, "Width":90, "Width":125] 
+4

您尝试创建的格式不是有效的JavaScript;你不能在数组中有命名的项目 –

回答

4

然后就返回这些对象:

columnWidth.map(function(e) {return { width: e.width }; }); 

这会给你一个数组,看起来像

[ { width: 30 }, { width: 50 }, ... ] 

(使用Width: e.width如果你想要使用大写的属性名称。)

在你的问题中描述的格式是没有意义的;没有JavaScript数据结构,因为数组索引是数字的。如果你想要一个不同的结构,你可以用.map().reduce()来完成。

此解决方案为您提供了一组对象,其中每个对象都有一个名为“width”的属性。这似乎与你所说的目标最接近。

+2

你不认为它应该是'return {“Width”:e.width}; }'和返回将是数组的对象:) :) – bipen

+2

@bipen哦好的,如果属性名称应该大写。但不需要引用它。 – Pointy