Javascript Node.js中ES6过滤器的奇怪行为

Javascript Node.js中ES6过滤器的奇怪行为,javascript,node.js,ecmascript-6,Javascript,Node.js,Ecmascript 6,我正在尝试使用ES6:filter筛选下面的数据 { "EmailAddress": "joe@example.com", "Name": "", "Date": "2009-01-23 06:22:00", "State": "Active", "CustomFields": [ { "Key": "[FirstName1]",

我正在尝试使用ES6:filter筛选下面的数据

{
        "EmailAddress": "joe@example.com",
        "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):


我不明白通过过滤器提取数据如何改变数据源。我忽略了一些基本的东西吗?

你应该用
==
代替赋值(
=

let订户={“电子邮件地址”:joe@example.com“,”名称“:”,”日期“:”2009-01-23 06:22:00”,“状态“:”活动“,”自定义字段“:[{”键“:”[FirstName1],”值“:“joe”},{”键“:“[LastName1],”值“:“bloggs”}]}”
const firstName=subscriber.CustomFields.filter(cf=>cf.Key=='[FirstName1]');

console.log(名字)
应该是
cf.Key==='FirstName1'
而不是
cf.Key='FirstName1'
您所说的“源代码已更改”是什么意思?当然它没有更改源代码文件,是吗?是的@Bergi-赋值(single=,而不是double=)将更改数据。谢谢。真不敢相信我没看到!
{
        "EmailAddress": "joe@example.com",
        "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')