R - вызвать функцию с переменным аргументом в цикле

Вот некоторые современные решения этого старого вопроса. Вы можете расширить его в соответствии с вашими потребностями. Предположим, что следующая структура данных:

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'
  }
}

Обратите внимание, что приведенные выше ответы получены из аналогичного вопроса .

0
задан PhilippB 28 February 2019 в 12:04
поделиться