在条件下更改对象的属性

Changing attributes of an object under conditions

我想在特定条件下更改属性的值,如下面的代码所述,但我不想使用 for 循环。我认为 .map() 可能有用,但我不知道如何使用。 这是(有效的)示例代码:

class Replace {
    constructor(){
        this.Numbers = [
            {number:'1', feature:'A'},
            {number:'2', feature:'B'},
            {number:'2', feature:'C'},
            {number:'3', feature:'D'},
        ]
    }

    ReplaceNumbersWithWords (){
        for(this.i=0;this.i<this.Numbers.length;this.i++)
        if(this.Numbers[this.i].number==='1'){
            this.Numbers[this.i].number='one'
        }
        else if (this.Numbers[this.i].number==='2'){
            this.Numbers[this.i].number='two'
        }
        else if (this.Numbers[this.i].number==='3'){
            this.Numbers[this.i].number='three'
        }
        console.log(this.Numbers)
    }
}

const replace = new Replace()
replace.ReplaceNumbersWithWords()

如您所见,我想更改数组 "this.Numbers" 中每个对象的属性 "number",如何以最有效的方式(不使用 for 循环)?

输出必须是:

[
  { number: 'one', feature: 'A' },
  { number: 'two', feature: 'B' },
  { number: 'two', feature: 'C' },
  { number: 'three', feature: 'D' }
]

希望这是您正在寻找的一种映射

class Replace {
  constructor() {
    this.Numbers = [
      { number: '1', feature: 'A' },
      { number: '2', feature: 'B' },
      { number: '2', feature: 'C' },
      { number: '3', feature: 'D' }
    ];

    this.mapRef = [
      { key: '1', value: 'one' },
      { key: '2', value: 'two' },
      { key: '3', value: 'three' }
    ];
  }

  ReplaceNumbersWithWords() {
    const newArr = this.Numbers.map(item => {
      return {
        number: this.mapRef.find(num => num.key === item.number).value,
        feature: item.feature
      };
    });
    console.log(newArr);
  }
}

const replace = new Replace();
replace.ReplaceNumbersWithWords();