如何使用javascript将字符串数组转换为布尔值? [复制]
Posted
技术标签:
【中文标题】如何使用javascript将字符串数组转换为布尔值? [复制]【英文标题】:How to convert an array of strings to boolean using javascript? [duplicate] 【发布时间】:2021-12-23 11:03:43 【问题描述】:我想使用 javascript 将字符串数组转换为布尔数组。
我有一个字符串数组,如下所示
const data = ["true", "false", "false", "false", "true"]
如何将上面的字符串数组转换为如下的布尔数组,
const data = [true, false, false, false, true]
我如何使用 javascript 来做到这一点。有人可以帮我吗?谢谢。
【问题讨论】:
这能回答你的问题吗? How can I convert a string to boolean in JavaScript? 【参考方案1】:如果要将结果保存到新变量中,请使用map
const data = ["true", "false", "false", "false", "true"]
const result = data.map(e => e === 'true')
如果您想更改原始变量(名为“数据”的变量),请使用forEach
:
data.forEach((e, i) => data[i] = e === "true" )
【讨论】:
谢谢我试过了。但给出错误此条件将始终返回 false,因为类型 boolean 和 string 在 data.map(e => e==='true') 行没有重叠data.map(e => e==='true')
=> 如果元素等于“true”,则将其转为true
,否则转为false
【参考方案2】:
假设您要更改现有数组而不是生成新数组...只需检查每个数组是否为“真”。
您也可以使用 JSON.parse,但如果您只有 true 和 false,这可能有点过头了,如果数组中还有其他内容,它可能会引发错误。
const data = ["true", "false", "false", "false", "true"];
for(var i=0; i<data.length; i++) data[i] = data[i] === 'true';
console.log(data);
【讨论】:
【参考方案3】:您可以映射解析后的值。
const
data = ["true", "false", "false", "false", "true"],
result = data.map(j => JSON.parse(j));
console.log(result);
【讨论】:
如果它总是一个布尔值,可能会更快(例如,运行得更快)走data.map(j => j==='true')
的简单路线 - 并且为了记录,我不知道这是否真的更快,因为我不确定 JSON.parse 的内部工作原理以上是关于如何使用javascript将字符串数组转换为布尔值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章