让我们采用索引(关联)数组,如下所示
var gh = { pop: 'apple', jim: 'orange', john: 'ball', sim: 'oran' }
如何搜索此数组以查找值类似的索引' ora'?
示例:
如果我输入了ora
,我必须将索引jim
和sim
作为输出。
答案 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;
});