Jquery 当属性名称可以更改时,如何获取对象值

Jquery 当属性名称可以更改时,如何获取对象值,jquery,arrays,jquery-ui-autocomplete,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_mai

我从一个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]
,…,来获取值,但如果这样做,我只会得到一个具有未定义值的数组


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

即使属性名称可能不同,您也希望获取属性值

在这种情况下,您可以使用:它返回一个属性值数组,而且由于您使用的对象显然只有一个属性,因此它将是一个只有一个值的数组

在您的代码中,它将如下所示:

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

您的意思是说,
s_main
属性可能不存在,但您不知道另一个属性的名称,但仍希望获取其值?所以,问题是:当一个对象只有一个属性,但我不知道它的名称时,我如何获得该对象属性的值?我知道它的名称,就像s_main、s_product、s_price等。。。但是一次需要一个名字。这取决于用户按下的按钮。因此,我只想将多个功能组合到一个功能中,通过重复大部分相同的代码来避免冗余。如果没有看到实际的按钮和单击处理程序,很难回答这个问题。但这能解决你的问题吗<代码>标签:Object.values(item)[0]或者
item
是否同时具有多个属性?@trincot it works~您节省了我的时间~非常感谢!祝你一天快乐~