首页 > 解决方案 > 将对象的所有字符串值转换为小写 Javascript

问题描述

我想获取一个包含字符串和数值的对象数组,并将所有字符串值转换为小写。我不提前知道我的数组对象将具有哪些具体值,所以我只想先检查数组中的对象是否包含字符串,然后将该字符串设为小写。当我运行以下命令时,出现错误。

let data = [{
    userId: 1234567890,
    errorId: 957,
    userCategory: "Category",
    userAge: 18,
    userType: "Standard"
  },
  {
    userId: 1234567890,
    errorId: 583,
    userCategory: "Second",
    userAge: 28,
    userType: "Superuser"
  },
  {
    userId: 1234567890,
    errorId: 823,
    userCategory: "Third",
    userAge: 38,
    userType: "Admin"
  }
]

let newData = data.map(x => x.toLowerCase());

console.log(newData) //data is not a function

标签: javascript

解决方案


Array.map这里不需要(其他一些答案表明这一点),因为您没有改变对象本身,只是改变它们的属性。

遍历数组,改变对象。

let data = [{
  userId: 1234567890,
  errorId: 957,
  userCategory: "Category",
  userAge: 18,
  userType: "Standard"
}, {
  userId: 1234567890,
  errorId: 583,
  userCategory: "Second",
  userAge: 28,
  userType: "Superuser"
}, {
  userId: 1234567890,
  errorId: 823,
  userCategory: "Third",
  userAge: 38,
  userType: "Admin"
}];

for (let obj of data) { // for each loop, iterates over values
  for (let key in obj) { // iterates over the keys
    if (typeof obj[key] === 'string') {
      obj[key] = obj[key].toLowerCase();
    }
  }
}

console.log(data);


推荐阅读