如果使用打字稿映射不工作,则查找并替换数组中存在的值

find and replace the value if exists in array using typescript map not working

我有一个数组,其中包含一组没有 space 的值,所以我想找到该值并将其替换为 space 例如:

dateOfJoining --> 加入日期

就业状况 --> 就业状况

let attributes =["dateOfJoining", "employmentStatus"]

let filtered = attributes.filter((item) => {
  if (item === 'dateOfJoining') {
    item = 'Date Of Joining';
  }

  if (item === 'employmentStatus') {
    item = 'Employment Status';
  }

  return item;
});

它总是 returning filtered =["dateOfJoining", "employmentStatus"] 但它需要 return 就像 ["Date Of Joining", "Employment Status"].

我已尝试使用上述方法,但未按预期 return 计算值。 他们无论如何都要解决这个问题吗?

对于此用例,您可以更好地使用 forEach 方法。
请参阅下面的示例:

let attributes =["dateOfJoining", "employmentStatus"]

 attributes.forEach((item, index) => {
  if (item === 'dateOfJoining') {
    attributes[index] = 'Date Of Joining';
  }

  if (item === 'employmentStatus') {
    attributes[index] = 'Employment Status';
  }
  console.log('-*-*', item);
});

并且甚至更好不使用任何 if else 和无限数量的句子:

let attributes =["dateOfJoining", "employmentStatus", "someOtherText", "andAnotherText"]

attributes.forEach((item, index) => {
  var result = item.replace( /([A-Z])/g, " " );
    attributes[index] = result.charAt(0).toUpperCase() + result.slice(1);
});

console.log(attributes);   
// ["Date Of Joining", "Employment Status", "Some Other Text", "And Another Text"]