所以我有一个地图(键值对象称为“信息”),如下所示:
1: [1, "alfred", "mainstreet"]
2: [2, "james" , "something"]
3: [3, "chris" , "bla"]
现在我想只搜索第二个。行,然后返回键的所有值。意味着我只能搜索“alfred”,“james”或“chris”。
因此,如果我在键盘输入中搜索:“bla”,则应显示NOTHING。
infos = (MySearchedText) ? infos.filter(matchesText) : infos;
var regExp = new RegExp(MySearchedText, "i");
var matchesText = function(value) {
return regExp.test(value);
}
使用这些功能,它会将所有值与搜索到的文本进行比较。意味着如果我甚至输入“bla”它会显示整个第3个键。
答案 0 :(得分:0)
这样的事可能......
var arr = [
[1, "alfred", "mainstreet"],
[2, "james" , "something"],
[3, "chris" , "bla"]
];
var search = function(name){
return arr.filter(function(a){
return a[1].indexOf(name) != -1
})
}
search('alfred'); // an array with results
答案 1 :(得分:0)
您可以获取对象的键并检查给定索引处的值是否为想要的字符串。
function getKeys(object, index, value) {
return Object.keys(object).filter(function (k) {
return object[k][index].indexOf(value) !== -1;
});
}
var data = { 1: [1, "alfred", "mainstreet"], 2: [2, "james" , "something"], 3: [3, "chris" , "bla"] };
console.log(getKeys(data, 1, 'a'));
console.log(getKeys(data, 2, 'bla'));