Здесь вы преобразуете только элементы array
, не выбирая правильное object
.
. Вам нужно только фильтр array
, сначала используя .filter()
метод , затем преобразуйте результат с помощью .map()
метод :
const specificFields = RawData.filter(e => e.id === id).map(function (el) {
return ({
surname: el['surname'].replace(/ /g, ''),
DOB: el['DOB'].replace(/ /g, '')
});
});
Демонстрация:
const RawData = [
{id: 1, forename: 'Bob', surname: 'Bobbington', DOB: '01/01/1990', address: '123 Fake St'},
{id: 2, forename: 'Bill', surname: 'Billster', DOB: '01/12/1999', address: '56 Road'},
{id: 3, forename: 'Sally', surname: 'Bobbington', DOB: '15/04/1987', address: '123 Fake St'},
{id: 4, forename: 'Flerp', surname: 'Derp', DOB: '01/09/1991', address: '34 Derpington'}
];
const id = 2;
const specificFields = RawData.filter(e => e.id === id).map(function (el) {
return ({
surname: el['surname'].replace(/ /g, ''),
DOB: el['DOB'].replace(/ /g, '')
});
});
console.log(specificFields);
Если id
не уникален:
Если id
не уникален, вам нужно проверить все object
свойства, вы можете сделать это, используя .every()
метод над свойствами каждого повторяющегося объекта внутри filter()
обратный вызов:
const specificFields = RawData.filter(e => Object.keys(e).every(k => e[k] == person[k])).map(function (el) {
return ({
surname: el['surname'].replace(/ /g, ''),
DOB: el['DOB'].replace(/ /g, '')
});
});
Demo:
const RawData = [
{id: 1, forename: 'Bob', surname: 'Bobbington', DOB: '01/01/1990', address: '123 Fake St'},
{id: 2, forename: 'Bill', surname: 'Billster', DOB: '01/12/1999', address: '56 Road'},
{id: 3, forename: 'Sally', surname: 'Bobbington', DOB: '15/04/1987', address: '123 Fake St'},
{id: 4, forename: 'Flerp', surname: 'Derp', DOB: '01/09/1991', address: '34 Derpington'}
];
const person = {id: 4, forename: 'Flerp', surname: 'Derp', DOB: '01/09/1991', address: '34 Derpington'};
const specificFields = RawData.filter(e => Object.keys(e).every(k => e[k] == person[k])).map(function (el) {
return ({
surname: el['surname'].replace(/ /g, ''),
DOB: el['DOB'].replace(/ /g, '')
});
});
console.log(specificFields);