2014-12-16 2 views
0

Давайте рассмотрим индексированный (ассоциативный) массив, как показано нижепоиск значения индекса в индексном массиве Javascript

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

Как я могу найти этот массив, чтобы найти индексы, где значение равно как и «ор»?

Пример:

Если я дал вход ora я должен получить индексы jim и sim в качестве выходного сигнала.

ответ

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

мы можем построить новый массив с результатами поиска. Это должно быть как {jim: 'orange', sim: 'oran'} – Joshna

+0

Что вы имеете в виду? Это уже массив –

+0

Выходной массив содержит только ключи. Как я могу получить значения тоже – Joshna

Смежные вопросы