首页 > 解决方案 > 我只想将文本附加到对象

问题描述

现在对于每个具有字符串“衬衫”的项目,我想将衬衫替换为“衬衫不可用

const inventory = [
        { line_item_id: "55412", item: "Shirt small", description: "" },
        { line_item_id: "55342", item: "shirt big full", description: "" },
        { line_item_id: "1124",  item: "Pant Small",description: "",},
    ];

我希望它看起来像这样

const inventory = [
    { line_item_id: "55412", item: "Shirts are not available small", description: "" },
    { line_item_id: "55342", item: "Shirts are not available big full", description: "" },
    { line_item_id: "1124",  item: "Pant Small",description: "",},
];

我使用了 map 函数,但它不包括未修改的行

我的代码

  const test = convertedToJson.map((convertedToJson) => {
        if (!!convertedToJson.item.match(/Shirt/i)) {
            return convertedToJson.item + "Shirts are not available  ";
        }
    });
    console.log(test);

“我的输出”

const inventory = [
       'Shirts are not available small'
        'Shirts are not available big full'
    ];

标签: javascriptnode.jsarraysjsonmap-function

解决方案


您可以使用地图和替换

const inventory = [{
    line_item_id: "55412",
    item: "Shirt small",
    description: ""
  },
  {
    line_item_id: "55342",
    item: "shirt big full",
    description: ""
  },
  {
    line_item_id: "1124",
    item: "Pant Small",
    description: "",
  },
];

const newVal = inventory.map((elem) => {
  // checking if string contains shirt/Shirt
  if (elem.item.toLowerCase().indexOf('shirt') !== -1) {
    return {
      ...elem,
      // case-insensitive replacement
      item: elem.item.replace(/shirt/gi, "Shirts are not available")

    }
  } else {
    return { ...elem
    }
  }
});

console.log(newVal)


推荐阅读