簡體   English   中英

如何將數據推入數組?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM