Я пытаюсь отфильтровать данные, используя фильтр ES6:.
{
"EmailAddress": "[email protected]",
"Name": "",
"Date": "2009-01-23 06:22:00",
"State": "Active",
"CustomFields": [
{
"Key": "[FirstName1]",
"Value": "joe"
},
{
"Key": "[LastName1]",
"Value": "bloggs"
}
]
}
Чтобы получить первое имя, я попробовал следующий код:
const firstName = subscriber.CustomFields.filter(cf => cf.Key='FirstName1')
Но после этой строки кода источник изменяется на (см. LastName1 изменен на FirstName1):
{
"EmailAddress": "[email protected]",
"Name": "",
"Date": "2009-01-23 06:22:00",
"State": "Active",
"CustomFields": [
{
"Key": "[FirstName1]",
"Value": "joe"
},
{
"Key": "[FirstName1]",
"Value": "bloggs"
}
]
}
Я не понимаю, как извлечение данных через фильтр может изменить источник. Я не замечаю здесь что-то принципиальное?
Вы должны использовать ==
вместо назначения (=
).
const firstName = subscriber.CustomFields.filter(cf => cf.Key == 'FirstName1')
let subscriber = { "EmailAddress": "[email protected]", "Name": "", "Date": "2009-01-23 06:22:00", "State": "Active", "CustomFields": [ { "Key": "[FirstName1]", "Value": "joe" }, { "Key": "[LastName1]", "Value": "bloggs" } ] }
const firstName = subscriber.CustomFields.filter(cf => cf.Key == '[FirstName1]');
console.log(firstName);
cf.Key === 'FirstName1'
неcf.Key='FirstName1'