Javascript: что такое тип переменной $ result.rows.item (x)? - PullRequest
1 голос
/ 30 ноября 2011

У меня была функция, которая читает, отображает содержимое запроса SELECT, поступающего из WEBSQL HTML5. Я хочу повторно использовать эту функцию, но у меня есть проблема, поскольку я получаю массив объектов JSON и хочу преобразовать его в rows.item (), так что кто-нибудь знает, как это работает?

Пример, у меня есть этот массив JSON

"retdic":[{"row_index":0,"lname":"Mato","age":26,"gender":"M","pic":"cyborg.jpg","fname":"Shibiru"},
          {"row_index":1,"lname":"Taro","age":30,"gender":"M","pic":"folder_wrench.png","fname":"Ichigo"},
          {"row_index":2,"lname":"Joni","age":27,"gender":"M","pic":"naruto.jpg","fname":"Perez"},
          {"row_index":3,"lname":"Sakura","age":24,"gender":"F","pic":"folder_table.png","fname":"Haruka"},              
          {"row_index":4,"lname":"Naruto","age":20,"gender":"M","pic":"naruto.jpg","fname":"Uzumaki"}]

Как мне преобразовать его в подобный $ result.rows.item ()? item () не является массивом справа, поскольку, если это массив, он должен быть item [].

UPDATE

Используя идею и помощь Джеффа, я понял, как это сделать. Смотрите живой пример

Ответы [ 2 ]

2 голосов
/ 30 ноября 2011

Хорошо, при условии, что единственное различие между вашим массивом и функцией item () состоит в том, что один является массивом, а другой - функцией (я предполагаю, что вы используете item () как "(3) «получить 4-й ряд), довольно просто.Просто определите функцию, которая принимает параметр i и возвращает элемент с индексом i в массиве.Итак:

var myItemFunction = function(i) {
     return retdic[i]
}
0 голосов
/ 30 ноября 2011

вам не нужно конвертировать этот объект, вы можете получить доступ к своим данным следующим образом:

$result.retdic[0].lname // 0 - row number

или в цикле:

var i,item;
for (i in $result.retdic) {
  item = $result.retdic[i];
  console.log(item.fname)
}

PS: если вы хотите, вы можете переименовать ключ «retdic» в «строки»

$res = {"rows":[
  {"name": "a"},
  {"name": "b"},
  {"name": "c"}
]};


var someKey = 'name',
valueOfSomeKey = $res.rows[rowNumberHere][someKey];
...