从具有多个值js的数组中过滤

时间:2017-02-28 11:39:15

标签: javascript object

我需要使用比较字符串和数字结果值来过滤数组。但是我输入过滤器数组值,而我输入两个值。否则我无法获得价值。这意味着如果只输入字符串值,我就无法获得过滤器数组值。

var fullArray = [{stringValue:"apple", numericValue:"40"}, {stringValue:"banana", numericValue:"20"}, {stringValue:"berry", numericValue:"30"}, {stringValue:"mango", numericValue:"10"}]

    _.filter(fullArray, function(el){
        if(el.stringValue.toLowerCase().indexOf(stringResultValue.toLowerCase())>=0 && el.numericValue==numericResultValue){
            resultFilter.push(el);
        }
    });

1 个答案:

答案 0 :(得分:1)

filter期望一个函数返回应该在新数组中的元素的真实性,如果它们不应该返回虚假的东西。你应该有类似的东西:

var fullArray = [{stringValue:"apple", numericValue:"40"}, {stringValue:"banana", numericValue:"20"}, {stringValue:"berry", numericValue:"30"}, {stringValue:"mango", numericValue:"10"}]

resultFilter = _.filter(fullArray, function(el){
    return el.stringValue.toLowerCase().indexOf(stringResultValue.toLowerCase()) >= 0 && 
           el.numericValue === numericResultValue;
});

使用ES6语法的较短版本:

resultFilter = fullArray.filter(el => 
    el.stringValue.toLowerCase().includes(stringResultValue.toLowerCase()) && 
    el.numericValue === numericResultValue;
);