如何在属性名称更改时获取对象值

时间:2018-06-13 10:42:01

标签: jquery arrays jquery-ui-autocomplete

我从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],...之类的操作来获取值,但是如果我这样做,我只会得到一个未定义值的数组。

如何在不指定硬编码属性名称的情况下获取值?

1 个答案:

答案 0 :(得分:0)

即使该属性的名称可能不同,您似乎也希望获得属性值。

在这种情况下,您可以使用Object.values:它返回一个属性值数组,因为显然您使用的对象只有一个属性,所以它只是一个只有一个值的数组。

在您的代码中,它看起来像这样:

return {
    label: Object.values(item)[0]
}