首页 > 解决方案 > 映射和替换不解密简单语句并返回未定义数组

问题描述

我正在尝试解码以下数组的 10 个产品的名称(解析的 json):

[
  {
    id: 9628920,
    name: 'Lævæ & Se¢æ 10,2 Kg Sæmsung E¢ø ßußßle ßræn¢æ ¢øm 09 Prøgræmæs de Lævægem',
    quantity: 57,
    price: 3719.7,
    category: 'Eletrodomésticos'
  },
  {
    id: 1316334,
    name: 'Refrigerædør ßøttøm Freezer Ele¢trølux de 02 Pørtæs Frøst Free ¢øm 598 Litrøs',
    quantity: 12,
    price: 3880.23,
    category: 'Eletrodomésticos'
  },
     and so on ......
]

我无法将整个数组及其 10 个元素添加到问题中,这就是我写“等等……”的原因

我正在使用这段代码,但是当我使用它时,decryptedData 正在接收一个包含 10 个未定义值的数组console.log()

 const  decryptedData = parsedData.map(product=>{
    product.name.replace('æ', 'a');
    product.name.replace('ø', 'o');
    product.name.replace('¢', 'c');
    product.name.replace('ß', 'b');
    
});

console.log(decryptedData);

标签: javascriptarraysecmascript-6cryptography

解决方案


您需要退回更新后的产品并为每次更换分配值。

对于替换方法,您需要使用正则表达式模式:

string.replace(/æ/g, 'a');

模式意味着:用 a 改变字符串中的每个æ

var parsedData = [
    {
        id: 9628920,
        name: 'Lævæ & Se¢æ 10,2 Kg Sæmsung E¢ø ßußßle ßræn¢æ ¢øm 09 Prøgræmæs de Lævægem',
        quantity: 57,
        price: 3719.7,
        category: 'Eletrodomésticos'
    },
    {
        id: 1316334,
        name: 'Refrigerædør ßøttøm Freezer Ele¢trølux de 02 Pørtæs Frøst Free ¢øm 598 Litrøs',
        quantity: 12,
        price: 3880.23,
        category: 'Eletrodomésticos'
    }
];

const decryptedData = parsedData.map(product=>{
    product.name = product.name.replace(/æ/g, 'a')
                               .replace(/ø/g, 'o')
                               .replace(/¢/g, 'c')
                               .replace(/ß/g, 'b');
    return product;
});

console.log(decryptedData);


推荐阅读