0

我正在尝试结交已登录的 Facebook 用户的朋友。我使用 fql,我想为在搜索框中输入的每个字母更新列表。我正在 fql 中进行此操作,并且可以正常工作。

我碰巧读到最好一次阅读所有朋友,然后搜索 JSON 对象。

对于一个数组

[{"uid":"1235","name":"user1_abcde","picture":"picurl"},
 {"uid":"1237","name":"user2_abcde","picture":"picur2"},
 {"uid":"1289","name":"user3_agere","picture":"picur3"}
]

如何排序,以在数组中获取搜索字符串的结果(例如:“de”)部分匹配名称字段以返回

 [{"uid":"1235","name":"user1_abcde","picture":"picurl"},
   {"uid":"1237","name":"user2_abcde","picture":"picur2"}
  ]

谢谢

4

2 回答 2

0
var searchFriend = function( str ){
    /* make search case-insensitive */
    str = str.toLowerCase();
    /* assuming `friendsArray` is your cached JSON response */
    return friendsArray.filter( 
        function( i ){ return (i['name'].toLowerCase().indexOf( str ) > -1) }
    );
}

MDN 上的 Array.filter

于 2013-01-15T07:06:29.760 回答
0

首先,您需要解析 json,然后使用正则表达式进行搜索。

function search(json, regex) {
    var result = [];
    $.each(JSON.parse(json), function(i, row) {
       if (row.name.match(regex)) {
          result.push(row);
       }
    });
    return result;
}

您可以使用该功能来搜索 de usingsearch(json, /de/)

于 2013-01-15T07:07:10.570 回答