如何将数据推送到数组中?
How can I push data into an array?
我已经将一些数据推送到一个数组中:
if(target === 'create'){
if(name === 'form[username]' || name === 'form[name]' || name === 'form[slug]' || name === 'form[plainPassword]'){
errors.push(name);
}
} else {
if(name === 'form[username]' || name === 'form[name]' || name === 'form[slug]' ){
errors.push(name);
}
}
它实际上工作正常。但是在我看来,确实是重复代码太多了,但是我还是找不到减少代码的方法,或者更简单更好的解决方案。
如果我没理解错的话,你想简化你的陈述。从我的角度来看,它可能是这样的:
if(name === 'form[username]' || name === 'form[name]' || name === 'form[slug]'
|| (name === 'form[plainPassword]' && target === 'create')){
errors.push(name);
}
开始于:
name === 'form[username]' || name === 'form[name]' || name === 'form[slug]'
重复两次,target === 'create'
对这个语句是真还是假都没有关系。
实际上只需将 (name === 'form[plainPassword]' && target === 'create')
添加到 if 语句即可
我会用两种方法来做
function CheckErrors(target,name){
switch(target){
case 'create':
SaveError(name,true);
break;
default:
SaveError(name);
break;
}
}
function SaveError(name,checkPassword){
if(name === 'form[username]' || name === 'form[name]' || name === 'form[slug]' ||(checkPassword && name === 'form[plainPassword]')){
errors.push(name);
}
}
您可以使用数组来简化您的 if 语句:
if((target === 'create' && name === 'form[plainPassword]') || ['form[username]', 'form[name]', 'form[slug]'].includes(name)){
errors.push(name);
}
我已经将一些数据推送到一个数组中:
if(target === 'create'){
if(name === 'form[username]' || name === 'form[name]' || name === 'form[slug]' || name === 'form[plainPassword]'){
errors.push(name);
}
} else {
if(name === 'form[username]' || name === 'form[name]' || name === 'form[slug]' ){
errors.push(name);
}
}
它实际上工作正常。但是在我看来,确实是重复代码太多了,但是我还是找不到减少代码的方法,或者更简单更好的解决方案。
如果我没理解错的话,你想简化你的陈述。从我的角度来看,它可能是这样的:
if(name === 'form[username]' || name === 'form[name]' || name === 'form[slug]'
|| (name === 'form[plainPassword]' && target === 'create')){
errors.push(name);
}
开始于:
name === 'form[username]' || name === 'form[name]' || name === 'form[slug]'
重复两次,target === 'create'
对这个语句是真还是假都没有关系。
实际上只需将 (name === 'form[plainPassword]' && target === 'create')
添加到 if 语句即可
我会用两种方法来做
function CheckErrors(target,name){
switch(target){
case 'create':
SaveError(name,true);
break;
default:
SaveError(name);
break;
}
}
function SaveError(name,checkPassword){
if(name === 'form[username]' || name === 'form[name]' || name === 'form[slug]' ||(checkPassword && name === 'form[plainPassword]')){
errors.push(name);
}
}
您可以使用数组来简化您的 if 语句:
if((target === 'create' && name === 'form[plainPassword]') || ['form[username]', 'form[name]', 'form[slug]'].includes(name)){
errors.push(name);
}