gpt4 book ai didi

Javascript 在 switch 语句中返回过滤数组

转载 作者:行者123 更新时间:2023-11-30 15:51:13 25 4
gpt4 key购买 nike

在 switch 语句内对数组进行过滤的正确方法是什么

let filteredMachines = (filterTerm,filterField) => {
switch (filterField) {
case 'NomAppareil':this.props.machines.filter(machine => {
return machine.nomAppareil === filterTerm;
});
break;

case 'CodeAppareil':this.props.machines.filter(machine => {
return machine.codeAppareil === filterTerm;
});
break;

case 'NomClient':this.props.machines.filter(machine => {
return machine.nomClient === filterTerm;
});
break;

case 'CodeClient':this.props.machines.filter(machine => {
console.log('inside CodeClient ='+JSON.stringify(machine));
return (machine.codeClient == filterTerm);
});
break;

case 'NoSerie':this.props.machines.filter(machine => {
return machine.noSerie === filterTerm;
});
break;

default: return this.props.machines;
}
};

编辑:我找到了下面给出的工作解决方案

let filteredMachines = machines.filter((machine) =>{
switch (filterField) {
case 'NomAppareil': return machine.nomAppareil === filterTerm;
case 'CodeAppareil': return machine.codeAppareil === filterTerm;
case 'NomClient': return machine.nomClient === filterTerm;
case 'CodeClient': return machine.codeClient === filterTerm;
case 'NoSerie': return machine.noSerie === filterTerm;
default: return true;
}

});

最佳答案

基本上,您需要返回过滤后的数组(因此是undefined结果),然后您可以省略break语句。

case 'NomAppareil':
return this.props.machines.filter(machine => {
// ^^^^^^
return machine.nomAppareil === filterTerm;
});
// break;

或者使用Set而不是 switch 语句。

let filteredMachines = (filterTerm, filterField) => {
var set = new Set(['NomAppareil', 'CodeAppareil', 'NomClient', 'CodeClient', 'NoSerie']);
return set.has(filterField)
? this.props.machines.filter(machine => machine[filterField] === filterTerm)
: this.props.machines;
};

关于Javascript 在 switch 语句中返回过滤数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39304251/

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