搜索索引数组中的索引值

问题描述 投票:0回答:2

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

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

我如何搜索这个数组,以找到值是'ora'的索引?

例子:

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

javascript arrays indexing associative-array
2个回答
2
投票

所以你需要的是对象的键,其值符合特定的模式。你可以使用 [].filter 关于 Object.keys(gh) 返回传入对象的键数组。

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 阵列通过记录它

console.log(output);

如果你想把它们作为数组的 {key:value} 正如你在评论中所说的,你可以这样做

var result = output.map(function(k){ 
   var obj = {};
   obj[k] = gh[k];
   return obj;
});
© www.soinside.com 2019 - 2024. All rights reserved.