[传递额外值以进行过滤时,为什么需要使用toString

问题描述 投票:-1回答:1

为什么'this'需要转换为字符串?

当我在回调函数'this'中传递值状态(等于“ NC”)时,将成为一个数组。将额外的值传递给回调的正确方法是什么?

var addresses = [
    { street: '104 Bob st', city: 'Boringville', state: 'NC' },
    { street: '207 Ted rd', city: 'Quiettown', state: 'NC' },
    { street: '309 Jim ln', city: 'Lameburg', state: 'VA' }
    ];
    
    //const result = addresses.filter(address => address.state=='NC');
    var state="NC";
    
    var result=addresses.filter((myFunction),state);
    
    function myFunction(address){     
    if(address.state==this.toString()) return true;
    
    
    }
    
    console.log(result);
javascript filter this tostring
1个回答
0
投票

由于this指向String元素,因此在使用它进行比较时需要对其进行转换,以使浏览器知道其类型。

© www.soinside.com 2019 - 2024. All rights reserved.