我从Ajax响应中得到以下回复:
[
{s_main: "apple1"},
{s_main: "apple2"},
{s_main: "apple3"},
{s_main: "apple4"}
]
我可以通过以下代码获取响应数组:
success: function(data) {
response( $.map( data, function( item ) {
return {
label: item.s_main, // how to make this more generic?
}
})
);
我可以获得新数组,即:
[{ label: "apple1" }, { label: "apple2" }, { label: "apple3" }, { label: "apple4" }]
...但s_main
属性名称可以更改为其他名称,因此我想通过执行item[0]
,item[1]
,...之类的操作来获取值,但是如果我这样做,我只会得到一个未定义值的数组。
如何在不指定硬编码属性名称的情况下获取值?
答案 0 :(得分:0)
即使该属性的名称可能不同,您似乎也希望获得属性值。
在这种情况下,您可以使用Object.values
:它返回一个属性值数组,因为显然您使用的对象只有一个属性,所以它只是一个只有一个值的数组。
在您的代码中,它看起来像这样:
return {
label: Object.values(item)[0]
}