我从一个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]
,...之类的操作来获得值,但如果这样做,我只会得到一个包含未定义值的数组。
如何在不指定硬编码属性名称的情况下获取这些值?
发布于 2018-06-14 07:22:50
即使属性的名称可能不同,看起来您也想要获取属性值。
在这种情况下,您可以使用Object.values
:它返回一个属性值的数组,而且显然您使用的对象只有一个属性,所以它将是一个只有一个值的数组。
在您的代码中,它将如下所示:
return {
label: Object.values(item)[0]
}
https://stackoverflow.com/questions/50835167
复制相似问题