繁体   English   中英

寻找比在array.map for javascript 中使用 switch 语句更好的方法

[英]looking for better way than having switch statement in array.map for javascript

寻找比在 array.map 中为 javascript 使用 switch 语句更好的方法。 基本上有没有更好的方法来更改给定 object 或其他东西的数组中的所有值? 在这种情况下,我想将数组的所有值缩写或更改为给定的不同值。 我应该使用另一个 map 还是另一个 object? Javascript Es6 问题我有这个:

const abvDepartments = departments.map(equip => {
  switch (equip) {
    case 'service':
      return 'Svc';
      break;
    case 'help':
      return 'HLP';
      break;
    case 'contracts':
      return 'Con';
      break;
    default:
      return '';
  }
});

这里有很多可能性,但一种选择是这样的:

const abvDepartments = departments.map(equip => {
  return {
    'service': 'Svc',
    'help': 'HLP',
    'contracts': 'Con'
  }[equip] || '';
});

如果您愿意,并且您没有在 map 中做任何其他事情,您可以进一步缩短它:

const abvDepartments = departments.map(equip => ({
  'service': 'Svc',
  'help': 'HLP',
  'contracts': 'Con'
}[equip] || ''));

您可以保留 object,如下所示:

const options = {'service':'Svc','help': 'HLP' }

接着:

const abvDepartments = departments.map(equip => options[equip] || "");

在你的逻辑之外声明常量,这将永远是整洁的。 快乐编码:)

// declare constants with uppercase
const DEP_CODE = {
  'service': 'Svc',
  'help': 'HLP',
  'contracts': 'Con'
}

const abvDepartments = departments.map(equip => DEP_CODE[equip] || '' );

暂无
暂无

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

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