在Javascript中,有没有办法实现类似的目的?

const databaseObjectID = "someId"; // like "product/217637"

switch(databaseObjectID) {
    case includes('product'): actionOnProduct(databaseObjectID); break;
    case includes('user'): actionOnUser(databaseObjectID); break;
    // .. a long list of different object types
}

这是一个更好奇的问题,以了解切换/大小写的可能性,因为在这种特殊情况下,我已经使用const type = databaseObjectID.split('/')[0];解决了我的问题,并将切换大小写应用于type

最佳答案

您的使用将被视为滥用情况。

而是只使用ifs

     if (databaseObjectId.includes('product')) actionOnProduct(databaseObjectID);
else if (databaseObjectId.includes('user'))    actionOnUser(databaseObjectID);
// .. a long list of different object types

如果ObjectId包含产品或用户周围的静态内容,则可以将其删除并将用户或产品用作 key :
var actions = {
  "product":actionOnProduct,
  "user"   :actionOnUser
}

actions[databaseObjectId.replace(/..../,"")](databaseObjectId);

关于javascript - 在切换Javascript情况下使用字符串 "includes()",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43423458/

10-09 19:00