索引数组javascript中索引的搜索值

时间:2014-12-16 14:55:19

标签: javascript arrays indexing associative-array

让我们采用索引(关联)数组,如下所示

var gh = { pop: 'apple', jim: 'orange', john: 'ball', sim: 'oran' }

如何搜索此数组以查找值类似的索引' ora'?

示例:

如果我输入了ora,我必须将索引jimsim作为输出。

1 个答案:

答案 0 :(得分:2)

所以你需要Object的键,其值与特定模式匹配。您可以在[].filter上使用Object.keys(gh),它会返回传入的Object的键数组。

var str = "ora", gh = { pop: 'apple', jim: 'orange', john: 'ball', sim: 'oran' };
var output = Object.keys(gh).filter(function(key){  
    return gh[key].indexOf(str) == 0; // condition
});

如果gh[key].indexOf(str) > -1可以出现在str的任何位置,而不仅仅是在开头,则使用条件String。您可以通过记录来查看output Array的内容

console.log(output);

如果你想将它们作为{key:value}的数组,你可以在评论中说明,你可以做到

var result = output.map(function(k){ 
   var obj = {};
   obj[k] = gh[k];
   return obj;
});