2016-02-02 2 views
0

Использование underscorejs Я могу фильтровать данные в объекте, но он не сохраняет его ключи. Есть ли способ, чтобы получить обратно объект с ключамиjavascript object filter - не возвращает ассоциативные ключи

var data = { 
    foo: 'fff', 
    bar: 'sss', 
    aaa: 'gggg' 
} 
console.info('returns array with keys:') 

console.log(data) 

var ret = _.filter(data, function(el, key) { 
    if (key == 'foo' || el == 'sss') { 
    return true 
    } 
}) 

console.info('keys are lost?') 
console.log(ret) 

Здесь скрипка: https://jsfiddle.net/7L7tmq7s/

+0

Вы не есть массив, у вас есть объект. – CBroe

+0

обновил код - любые мысли, как решить это, пожалуйста? – Adam

+0

http://underscorejs.org/#filter: _ "Просматривает каждое значение в списке, возвращая __array__ всех значений, передающих тест истины (предикат)." _ - поэтому это неправильный метод для использования для это для начала. – CBroe

ответ

2

Работал его с фильтром из:

console.log(data) 
var filtered = {}; 
var ret = _.each(data, function(el, key) { 
    if ((key == 'foo' || el == 'sss')) { 
    filtered[key] = el; 
    } 
}) 

console.info('keys are not lost?') 
console.log(filtered) 

рабочего код here

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