Вот некоторые современные решения этого старого вопроса. Вы можете расширить его в соответствии с вашими потребностями. Предположим, что следующая структура данных:
table = {
row1: {
col1: 'A',
col2: 'B',
col3: 'C'
},
row2: {
col1: 'D',
col2: 'A',
col3: 'F'
},
row3: {
col1: 'E',
col2: 'G',
col3: 'C'
}
};
Чтобы получить массив ключей к объектам, где свойство col3
равно «C»:
Object.keys(table).filter(function(row) {
return table[row].col3==='C';
});
Это вернет ['row1', 'row3']
.
Чтобы получить новый объект строк, где свойство col3
равно «C»:
Object.keys(table).reduce(function(accumulator, currentValue) {
if (table[currentValue].col3==='C') accumulator[currentValue] = table[currentValue];
return accumulator;
}, {});
Это вернет
{
row1: {
col1: 'A',
col2: 'B',
col3: 'C'
},
row3: {
col1: 'E',
col2: 'G',
col3: 'C'
}
}
Обратите внимание, что приведенные выше ответы получены из аналогичного вопроса .