[英]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);
}
}
它實際上工作正常。 但是在我看來,實際上重復代碼太多了,但是我仍然找不到減少代碼或做出更簡單更好的解決方案的方法。
我會用兩種方法來做
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(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'
是true還是false都沒有關系。
實際上,只需在if語句中添加(name === 'form[plainPassword]' && target === 'create')
, (name === 'form[plainPassword]' && target === 'create')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.