Фильтрация объекта в JS

256
28 апреля 2018, 17:37

как сделать фильтрация данного объекта, к примеру, по возрасту?

const teams = { 
    '0': { 
      Name: 'Vasa', 
      Age: 25 
    }, 
    '1': { 
      Name: 'Alex', 
      Age: 20 
    } 
  } 
   
console.log(teams);

Находил похожие тему, как к примеру вот эта, но слишком сложно.

Заранее спасибо.

Answer 1

Можно сделать так. Не самый универсальный пример, но все же

let result = {} 
let teams = { 
    '0': { 
      Name: 'Vasa', 
      Age: 25 
    }, 
    '1': { 
      Name: 'Alex', 
      Age: 20 
    } 
  } 
   
for (i in teams) { 
  let team = teams[i] 
  // Ниже условие фильтрации 
  if (team.Age === 20) { 
    result[i] = team 
  } 
} 
 
console.log(result)

Будет лучше, если переменная teams будет массивом, тогда можно будет писать более гибкий и лаконичный код, например:

     let teams = [{ 
          Name: 'Vasa', 
          Age: 25 
        },{ 
          Name: 'Alex', 
          Age: 20 
        }] 
       
    let result = teams.filter(team => team.Age === 20) 
    console.log(result)

Answer 2

const teams = { 
    '0': { Name: 'Vasa', Age: 25 }, 
    '1': { Name: 'Alex', Age: 20 }  
};  
 
let filtered = filterBySubField(teams, 'Age', 20); 
console.log(JSON.stringify(filtered, null, 2)); 
 
// возвращает копию объекта obj, содержащую только те поля-объекты, у которых поле subField === value 
function filterBySubField(obj, subField, value) { 
  let result = {};  
  for (let k in Object.keys(obj)) { 
    if (obj[k][subField] === value)  
      result[k] = Object.assign({}, obj[k]);  
  } 
  return result;  
}

READ ALSO
Как заменить последнюю строку? [дубликат]

Как заменить последнюю строку? [дубликат]

На данный вопрос уже ответили:

221
Добавить src после загрузки страницы

Добавить src после загрузки страницы

На сайте есть iframeХочу сделать чтобы изначально src был пуст, а после полной загрузки страницы добавить значение атрибута data-src в src

195
Как скрыть адресную строку на iPad(iPhone)?

Как скрыть адресную строку на iPad(iPhone)?

Пробовал и windowscrollTo(0,1) и meta name="apple-mobile-web-app-capable" content="yes", но нечего путного из этого не получилось

171
Слайдер owl-carousel

Слайдер owl-carousel

Возможно ли сделать слайдер с такой галереей http://prntscrcom/jazjm3 плагином owl-carousel? Если да, можно примерный код такого слайдера?

165