Javascript 从具有多个值的数组中筛选

Javascript 从具有多个值的数组中筛选,javascript,object,Javascript,Object,我需要用比较字符串和数字结果值来过滤数组。但是获取过滤器数组值,同时输入这两个值。否则我就无法获得值。这意味着,如果只输入字符串值,则无法获取筛选器数组值 var fullArray = [{stringValue:"apple", numericValue:"40"}, {stringValue:"banana", numericValue:"20"}, {stringValue:"berry", numericValue:"30"}, {stringValue:"mango", numeri

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

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);
        }
    });

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;
);

什么是
resultFilter
stringResultValue
numericsultvalue
?请以输入数据和预期结果为例。Lodash的
过滤器
的工作原理应该类似。@AndrewParamoshkin,resultFilter正在获取最终结果数组。stringResultValue和numericResultValue都是从click函数中获取值的函数。@barbsan,是的,这里有一个例子,只有筛选字符串或数值。我需要两个值的过滤器。@barbsan,是的,谢谢老兄!