Не пойму почему не прорабатывает как нужно функция в js:
let teams = [{
Name: 'Vasa',
Age: 25
},{
Name: 'Alex',
Age: 20
},{
Name: 'Mark',
Age: 20
}]
function filterCountry(object,key) {
var arr1 = [];
key.forEach(function(item, i, arr) {
var result = object.filter(team => team.Age === item)
arr1.push(result[0]);
});
return arr1;
}
var result1 = filterCountry(teams, [25,20]);
console.log(result1);
Почему функция .filter выбирает лишь один элемент, а не два?
Как сделать так, чтобы вывело все правильно?
Ожидаемый рез:
result1 = [{
Name: 'Vasa',
Age: 25
},{
Name: 'Alex',
Age: 20
},{
Name: 'Mark',
Age: 20
}]
filter выбирает два, вы берете только один. result[0].
Как вариант:
let teams = [{
Name: 'Vasa',
Age: 25
}, {
Name: 'Alex',
Age: 20
}, {
Name: 'Mark',
Age: 20
}, {
Name: 'Clark',
Age: 22
}]
//----------------------------------------------------------------
function filterCountry(object, key) {
var arr1 = [];
key.forEach(function(item, i, arr) {
var result = object.filter(team => team.Age === item)
if (result.length == 1)
arr1.push(result[0]);
else {
for (let i of result) {
arr1.push(i);
}
}
});
return arr1;
}
var result1 = filterCountry(teams, [25, 20]);
console.log(result1);
let teams = [{
Name: 'Vasa',
Age: 25
}, {
Name: 'Alex',
Age: 20
}, {
Name: 'Mark',
Age: 20
}]
function filterCountry(object, key) {
return object.filter(team => key.some(age => team.Age == age));
}
var result1 = filterCountry(teams, [25, 20]);
console.log(result1);
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости