Javascript 替换对象数组中的字符

Javascript 替换对象数组中的字符,javascript,arrays,Javascript,Arrays,我有一个对象数组,其中可能有我希望删除的某些字符。在本例中,它是。我的阵列结构如下: const testArray = [ { ASIN: 'ABC123', Rank: '£50', Sales: '£80' }, { ASIN: 'ZYX123&', Rank: '£70', Sales: '£20' }, ]; 我想知道是否可以使用类似于replace函数的方法,将数组拆分为字符串,使用replace,然后再次将其连接起来 e、 g.textArray.split(‘,

我有一个对象数组,其中可能有我希望删除的某些字符。在本例中,它是。我的阵列结构如下:

const testArray = [
  { ASIN: 'ABC123', Rank: '£50', Sales: '£80' },
  { ASIN: 'ZYX123&', Rank: '£70', Sales: '£20' },
];
我想知道是否可以使用类似于replace函数的方法,将数组拆分为字符串,使用replace,然后再次将其连接起来

e、 g.
textArray.split(‘,’).replace(/^\£/,“”)。join(‘,’)

有人向我显示了此代码,但我无法使其正常工作:

myArray.map(item => {
      return Object.entries(item).reduce((agg, [key, value]) => {
        agg[key] = value.replace(/^\£/, '');
        return agg;
      }, {});
    });

我将其拆分为字符串并重新联接方法是否有效?有没有一种最佳实践方法可以做到这一点?

一种方法是对对象进行字符串化、替换,然后对其进行解析:

const testArray=[
{ASIN:'ABC123',排名:'50英镑',销售额:'80英镑'},
{ASIN:'ZYX123&',排名:'70英镑',销售额:'20英镑',
];
const newTestArray=JSON.parse(
JSON.stringify(testArray).replaceAll('英镑','')
);

控制台日志(newTestArray)一个选项是对对象进行字符串化、替换,然后对其进行解析:

const testArray=[
{ASIN:'ABC123',排名:'50英镑',销售额:'80英镑'},
{ASIN:'ZYX123&',排名:'70英镑',销售额:'20英镑',
];
const newTestArray=JSON.parse(
JSON.stringify(testArray).replaceAll('英镑','')
);

控制台日志(newTestArray)如果只想替换数组中对象值中的字符,可以尝试以下代码。它将逐个迭代数组中的每个对象,获取该对象的所有键,并迭代这些键以替换其值中的字符

let键

testArray.map((obj)=>{

keys=Object.keys(obj);

keys.map((val)=>{

obj[val]。替换(/a/g,“b”);

})


}

如果只想替换数组中对象值中的字符,可以尝试以下代码。它将逐个迭代数组中的每个对象,获取该对象的所有键,并迭代这些键以替换其值中的字符

let键

testArray.map((obj)=>{

keys=Object.keys(obj);

keys.map((val)=>{

obj[val]。替换(/a/g,“b”);

})


}

这是否回答了您的问题?这回答了你的问题吗?我发现如果我把你的代码放入上面的测试数组中,你的代码工作得很好。但是当我使用自己的数组时,我得到了这样一个错误:“TypeError:val.replaceAll不是一个函数”,我无法理解它为什么这样做。我正在导入文件,然后对导入的数据运行一些代码。例如,这是我在使用映射例程之前运行的最后一段代码:
myArray.forEach((o,I)=>(o.id=I+1))
有什么想法吗?如果您的环境不支持
replaceAll
,请为其安装polyfill(推荐)或使用老式的regex方法
.replace(/£/g',)
我现在得到一个错误:uncaughttypeerror:val.replace不是一个函数,如果这有什么区别的话,我是在类中执行的。听起来你的一个值不是字符串。请确保所有值都是字符串,或在使用
之前将其转换为字符串。替换
,或跳过非字符串的转换,或其他操作-找出所需的逻辑。某些值不是字符串,因为它是CSV导入,papaparse有一个配置来指定某些字段是否应为数字。所以,也许我应该看看你的stringify方法。如果我把你的代码放在上面的测试数组中,我发现你的代码工作得很好。但是当我使用自己的数组时,我得到了这样一个错误:“TypeError:val.replaceAll不是一个函数”,我无法理解它为什么这样做。我正在导入文件,然后对导入的数据运行一些代码。例如,这是我在使用映射例程之前运行的最后一段代码:
myArray.forEach((o,I)=>(o.id=I+1))
有什么想法吗?如果您的环境不支持
replaceAll
,请为其安装polyfill(推荐)或使用老式的regex方法
.replace(/£/g',)
我现在得到一个错误:uncaughttypeerror:val.replace不是一个函数,如果这有什么区别的话,我是在类中执行的。听起来你的一个值不是字符串。请确保所有值都是字符串,或在使用
之前将其转换为字符串。替换
,或跳过非字符串的转换,或其他操作-找出所需的逻辑。某些值不是字符串,因为它是CSV导入,papaparse有一个配置来指定某些字段是否应为数字。所以也许我应该看看你的stringify方法。