2014-09-27 2 views
1

У меня есть объект, который выглядит следующим образом:объект Фильтр массива ключей

tagCount = {key1: val1, key2: val2...keyn:valn} 

И массив, который выглядит следующим образом:

keys = ['key1', 'key3', 'key5']; 

Я хочу, чтобы получить объект (или массив I думает) из tagCount только с полями, которые соответствуют клавишам:

foo - {key1: val1, key3: val3, key5: val5} 

Я использую, так что я подчеркивание чувствую, что это возможно, но для жизни меня я могу не выясните волшебство, чтобы это произошло.

ответ

4

Я считаю, что вы хотите _.pick

Должно быть что-то вроде этого: _.pick(tagCount, keys)

+0

Не верный выбор прав? Это захватывает свойства, а не всю запись? – emd

+0

Нет _.pick возвращает новый объект, содержащий отфильтрованный набор пар ключ-значение. См. Документацию _.pick, связанную для примера. Если вам нужны только значения, вам также нужно будет вызвать _.значения: http://underscorejs.org/#values ​​ –

+0

Вы правы, это не то, как я читаю документацию. Благодаря! – emd

0

не используется подчеркивание ...

var result = []; 
for (var i in keys; i<keys.length; i++){ 
    if (tagCount.hasOwnProperty(keys[i])){ 
    result.push(tagCount[keys[i]]); 
    } 
} 
console.log(result) 

Я думаю, что он должен работать ...

+0

Спасибо, мой ответ подобен. – emd

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