简体   繁体   English

如何优化这个 JavaScript 代码片段?

[英]How to optimize this JavaScript code snippet?

The following piece of code is ran on app launch.以下代码在应用程序启动时运行。 The params come in on the URL, and products will contain a list of product codes such as electronics|J7|F4|T4.参数出现在 URL 中,产品将包含产品代码列表,例如电子产品|J7|F4|T4。 Electronics is the only code that doesn't need to be mapped.电子是唯一不需要映射的代码。 Others need to be mapped to text values.其他需要映射到文本值。

We need to create a product sequence from the above product codes so that we get [electronics, apparel, shoes, groceries].我们需要从上面的产品代码中创建一个产品序列,以便我们得到[电子产品、服装、鞋子、杂货]。

Any simple ways to optimize the code to make it less verbose?有什么简单的方法可以优化代码以使其不那么冗长?

var products = params.products;
var productCodes = policyType.split('|');
var productArray = [];
productCodes.forEach(function(productCode) {
    if(productCode === constants.ELECTRONICS) {
        productArray.push(productCode);
    } else {
        productArray.push(maps.PRODUCT_BY_CODE[productCode]);
    }
})
productSequenceManager.setProductSequence(productArray);

If I understand your scenario correctly, I would do something like this:如果我正确理解你的场景,我会做这样的事情:

var productArray = policyType
  .split('|')
  .map(function(productCode) {
    return productCode === constants.ELECTRONICS ? 
      productCode : 
      maps.PRODUCT_BY_CODE[productCode];
  });
productSequenceManager.setProductSequence(productArray);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM