替换对象在数组中的子字符串?

问题描述 投票:0回答:2

在打字稿中,我有一个像变量1这样的数组对象,我想将name值的子字符串从地址键替换为new_name,将address替换为new_address。我该怎么做?我有类似的东西

const variable2 = [
  variable1.map((object) => {
    object.address.replace('name', 'new_name');
    object.address.replace('address', 'new_address');
  }),
];

但出现错误TS2339: Property 'address' does not exist on type 'void[]'.

export const variable1 = [
  {name: 'apple', address: `name=apple&address=apple_address}`, },
  {name: 'banana', address: `name=banana&address=banana_address}`, },
];
// vairable2
// export const variable1 = [
  // {name: 'apple', address: `new_name=apple&new_address=apple_address}`, },
  // {name: 'banana', address: `new_name=banana&new_address=banana_address}`, },] ;
typescript typescript2.0
2个回答
-1
投票

问题是您没有将值重新分配给object.address.replace()不会覆盖实际的字符串,它只是返回新值。那就是你想要的:

const variable2 = [
    variable1.map((object) => {
        object.address = object.address.replace('name', 'new_name')
            .replace('address', 'new_address');
    }),
  ];

-1
投票

如果您要替换的全部,则不需要map()方法。您可以使用forEach()。此代码将替换数组中的所有项目。

variable1.forEach((object) => {
  object.address = object.address.replace('name', 'new_name')
                                 .replace('address', 'new_address');
});
© www.soinside.com 2019 - 2024. All rights reserved.