首页 > 解决方案 > 更改数组内对象的大小写标题

问题描述

数组包含具有属性“title”的对象,其中包含带有_. 需要通过拆分'_'来更改标题,并且需要在每个空格后将第一个字母大写。

我可以将所有标题大小写更改为大写,但我只需要空格后的第一个字母应该大写

  const listData = [
        {
            "title": "some_id",
            "dataTypes": "character varying(65535)"
        },
        {
            "title": "some_value",
            "dataTypes": "character varying(65535)"
        }
  ]
  const newData = []
  listData.map(el => newData.push({"title":el.title.toUpperCase().split('_').join(' '),"dataTypes" : el.dataTypes }))
  console.log(newData);

预期的 :

   const newData = [
        {
            "title": "Some Id",
            "dataTypes": "character varying(65535)"
        },
        {
            "title": "Some Value",
            "dataTypes": "character varying(65535)"
        }
  ]

实际的 :

  const newData = [ 
  { title: 'SOME ID' ,
   dataTypes: 'character varying(65535)' },
  { title: 'SOME VALUE' ,
   dataTypes: 'character varying(65535)' } ]

标签: javascriptarraysobject

解决方案


你可以这样做:

const listData = [
  {
      "title": "some_id",
      "dataTypes": "character varying(65535)"
  },
  {
      "title": "some_value",
      "dataTypes": "character varying(65535)"
  }
]

const newData = []
listData.map(el => newData.push({
  "title":el.title.split('_').map( word => {
    return word[0].toUpperCase() + word.substring(1, word.length);
  }).join(' '),

  "dataTypes" : el.dataTypes }))
console.log(newData);

您将不得不遍历拆分标题并更新第一个字母。

结果是:

[ { title: 'Some Id', dataTypes: 'character varying(65535)' },
  { title: 'Some Value', dataTypes: 'character varying(65535)' } ]

推荐阅读