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

search value of index in indexed array javascript

本文关键字:索引 搜索 数组 JavaScript      更新时间:2023-09-26

让我们取一个索引(关联)数组,如下所示

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

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

例:

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

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

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
});

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

console.log(output);

如果您想像评论中所说的那样将它们作为{key:value}数组,您可以这样做

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