2017-04-02 104 views
-1

我有帐户的对象,例如:Javascript:我如何使用过滤器()过滤出具有特定值的特定对象?

{ 
     "amount": "822370.71", 
     "state": "ME" 
    }, 
    { 
     "amount": "968817.53", 
     "state": "FL" 
    }, 
    { 
     "amount": "587603.26", 
     "state": "OH" 
    }, 
    { 
     "amount": "657617.83", 
     "state": "OH" 
    }, 
    { 
     "amount": "657617.83", 
     "state": "FL" 
    } 

比方说,我想筛选出只能用“FL”的状态的对象和“OH”,我该如何使用过滤器()做那?谢谢。

+0

例如这里 - https://www.w3schools.com/jsref/jsref_filter.asp – Charlesliam

回答

3

试试这个

function filterArray (item) { 
    if (item.state === "OH" || item.state === "FL"){ 
     return item; 
    } 
} 

var resultArray = yourArray.filter(filterArray); 
console.log(resultArray); 
+1

'返回item.state === “OH” || item.state ===“FL”;'会产生相同的结果。 –

+0

是的,它会产生相同的结果 – forJ

1

试试这个:

var array = [{ 
 
     "amount": "822370.71", 
 
     "state": "ME" 
 
    }, 
 
    { 
 
     "amount": "968817.53", 
 
     "state": "FL" 
 
    }, 
 
    { 
 
     "amount": "587603.26", 
 
     "state": "OH" 
 
    }, 
 
    { 
 
     "amount": "657617.83", 
 
     "state": "OH" 
 
    }, 
 
    { 
 
     "amount": "657617.83", 
 
     "state": "FL" 
 
    }]; 
 
    
 
    var filterArray = array.filter(function(item){ 
 
     return item.state === 'FL' || item.state === 'OH'; 
 
    }); 
 
    
 
    console.log(filterArray);

0

使用array.filter(callback)这需要一个函数只有一个参数和返回符合您需要的条件的值:

var testArray = [ { 
     "amount": "822370.71", 
     "state": "ME" 
    }, 
    { 
     "amount": "968817.53", 
     "state": "FL" 
    }, 
    { 
     "amount": "587603.26", 
     "state": "OH" 
    }, 
    { 
     "amount": "657617.83", 
     "state": "OH" 
    }, 
    { 
     "amount": "657617.83", 
     "state": "FL" 
    }]; 
    var filtered = testArray.filter(isStateFLorOH); 

和温控功能的回调应该是这样的:

function isStateFLorOH(value){ 

if(value.state == "FL" || value.satate == "OH") 
return value; 
}