📜  8.1.3.改变数据类型¶ 数组 - Javascript (1)

📅  最后修改于: 2023-12-03 14:59:06.160000             🧑  作者: Mango

8.1.3. 改变数据类型 - 数组

在 JavaScript 中,数组可以包含各种类型的数据,如字符串、数字、布尔值等。但有时需要将数组中的数据类型更改,比如将字符串型数字转为数字型,或将字符串转为布尔值等。本文将介绍如何在 JavaScript 中改变数组中的数据类型。

字符串型数字转为数字型

下面的例子中,数组 arr 中包含了字符串型数字:

const arr = ['10', '20', '30'];

我们可以使用 map() 方法来遍历数组,将其每个元素都转换为数字型:

const newArr = arr.map((item) => parseInt(item, 10));

代码解析:

  • map() 方法会遍历数组 arr
  • parseInt(item, 10) 会将字符串型参数 item 转换为数字型。第二个参数 10 表示参数 item 是十进制数。
  • 将转换后的数据存入新数组 newArr 中。
字符串转为布尔值

下面的例子中,数组 arr 中包含了字符串类型的布尔值:

const arr = ['true', 'false', 'true', 'TRUE'];

我们可以使用 map() 方法遍历数组,将其每个元素都转换为布尔值:

const newArr = arr.map((item) => item.toLowerCase() === 'true');

代码解析:

  • map() 方法会遍历数组 arr
  • item.toLowerCase() 将参数 item 转换为小写字母。
  • item.toLowerCase() === 'true' 判断小写字母的字符串是否等于 'true',如果相等则返回 true,否则返回 false
  • 将转换后的数据存入新数组 newArr 中。
数组元素的数据类型转换工具

为了方便地对数组中的元素数据类型进行转换,我们可以封装一个函数作为工具:

function convertDataType(arr, toType) {
  switch (toType) {
    case 'number':
      return arr.map((item) => parseInt(item, 10));
    case 'float':
      return arr.map((item) => parseFloat(item));
    case 'boolean':
      return arr.map((item) => item.toLowerCase() === 'true');
    case 'string':
      return arr.map((item) => String(item));
    default:
      return arr;
  } 
}

调用方法如下:

const arr = ['10', '20', '30'];
const newArr = convertDataType(arr, 'number');
console.log(newArr); // [10, 20, 30]

代码解析:

  • convertDataType() 函数的第一个参数是需要转换类型的数组,第二个参数是指定转换后的类型。
  • switch() 语句会根据 toType 参数指定的类型进行分支判断。
  • 根据不同的分支调用相应的类型转换方法。
  • 如果 toType 参数不属于 'number''float''boolean''string' 中的任意一种,则不进行转换。

以上就是 JavaScript 中数组元素数据类型转换的相关介绍。可以使用 map() 方法进行遍历,并调用相应的类型转换方法实现。封装一个数据类型转换工具函数可以提高工作效率。