我在$.each(data.dataa, function (i,item) {
$.each(item, function (index, dat) {
$str+=dat;
})
$ulSub.append( '<li id="'+item.id +'" class="ui-widget-content">' +$str+'</li>');
});
中写了一个返回一组值的函数:
id
每个项目都有两个属性:lastname
和$str
,
每个id
的值是lastname
和lastname
的串联,但我只想要id
而不是item[2]
。我使用了函数lasname
,但它无效。
我的代码的结果如下:
我想要的只是得到item.lastname
的价值。我知道我应该使用__global__ void assign(float *x, const float &constant, const unsigned int &n)
^ ^
,但是我想询问是否有其他方法来获取lastname的值,因为第二个属性(lastname)是一个变量。
答案 0 :(得分:1)
嗯,你的情况很简单,你总是有一个具有2个属性的对象:id和一个未知属性。由于对象没有已定义的顺序,因此您无法假设所需的字段始终位于第二位置
一种方法是迭代键,然后选择一个不等于id的那个:
for(var key in item){
if(key != 'id'){
$str+= item[key]
}
}
类似的方法是选择对象键,过滤掉id,然后用该键访问对象:
$str+= item[Object.keys(item).filter(function(k){return k != 'id'})[0]]
如果你知道密钥的可能值,另一种方法是:
var possibleKeys = ['lastname', 'name', 'adress', 'phonenumber']
for(var key in item){
if(possibleKeys.indexOf(key) != -1){ // if its a valid key, append the value
$str+= item[key]
}
}
在你的情况下,第一个选项可能是最好的,但有多种方法可以做到这一点