在条件下更改对象的属性
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();
我想在特定条件下更改属性的值,如下面的代码所述,但我不想使用 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();