📅  最后修改于: 2023-12-03 14:59:06.160000             🧑  作者: Mango
在 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()
方法进行遍历,并调用相应的类型转换方法实现。封装一个数据类型转换工具函数可以提高工作效率。