让我们取一个索引(关联)数组,如下图所示
var gh = { pop: 'apple', jim: 'orange', john: 'ball', sim: 'oran' }
我如何搜索这个数组,以找到值是'ora'的索引?
例子:
如果我输入 ora
我必须获得索引 jim
和 sim
作为输出。
所以你需要的是对象的键,其值符合特定的模式。你可以使用 [].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;
});