gpt4 book ai didi

javascript - 如何在javaScript中使用排列和组合

转载 作者:行者123 更新时间:2023-12-03 00:42:50 25 4
gpt4 key购买 nike

我有四种不同类型的过滤器,它们是选择框:过滤器 A、过滤器 B、过滤器 C 和过滤器 D。每次,当最终用户更新这些选择时,都会返回四个数组。这些返回的结果是filterAResultArr、filterBResultArr、filterCResultArr和filterDResultArr。如果用户没有从选择框中选择任何内容,则将返回一个空数组。

//initiate
var filterAResultArr= [];
var filterBResultArr= [];
var filterCResultArr = [];
var filterDResultArr= [];
var filterSeResult = [];

我想要实现的目标如下:

  1. 如果返回一个非空数组

    if (//filterAResultArr、filterBResultArr、filterCResultArr 和 filterDResultArr 中只有一个数组不为空)
    { filterSeResult = (不为空的过滤结果。) }

    if(filterAResultArr && !filterBResultArr && !filterCResultArr && !filterDResultArr){过滤器结果 = 过滤器结果Arr}

    if(!filterAResultArr && filterBResultArr && !filterCResultArr && !filterDResultArr){过滤器结果 = 过滤器结果Arr}

    if(!filterAResultArr && !filterBResultArr && filterCResultArr && !filterDResultArr){过滤器结果 = 过滤器结果Arr}

    if(!filterAResultArr && !filterBResultArr && !filterCResultArr && filterDResultArr){过滤器结果 = 过滤器结果Arr}

  2. 如果只返回两个非空数组

  3. 如果返回三个非空数组

  4. 如果返回四个非空数组

有什么方法可以使代码符合逻辑而不是检查每个条件?检查所有条件看起来真的很愚蠢。

最佳答案

尝试

//initiate
var filterAResultArr= [1,2];
var filterBResultArr= [2,1];
var filterCResultArr = [1];
var filterDResultArr= [];
var filterSeResult = [];

// combine the array
var combine_array = [filterAResultArr, filterBResultArr,filterCResultArr,filterDResultArr];

// filter out the array is not empty
filterSeResult = combine_array.filter(function( v ) {
return v.length > 0;
});

// concat the result from array filter
// filterSeResult = pick_result.map(function(a) {
// return filterSeResult.concat(a);
// });

console.log( filterSeResult );

// Result
/*
[
[
1,
2
],
[
2,
1
],
[
1
]
]

*/

//initiate
var filterAResultArr= [1,2];
var filterBResultArr= [2,1];
var filterCResultArr = [1];
var filterDResultArr= [];
var filterSeResult = [];

// combine the array
var combine_array = [filterAResultArr, filterBResultArr,filterCResultArr,filterDResultArr];

// filter out the array is not empty
var pick_result = combine_array.filter(function( v ) {
return v.length > 0;
});

// concat the result from array filter
filterSeResult = pick_result.reduce(function(a, b) {
return a.concat(b);
}, []);

console.log( filterSeResult );

// Result
/*
[
1,
2,
2,
1,
1
]

*/

关于javascript - 如何在javaScript中使用排列和组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53367934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com