如何使用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 =&gt; j==='true') 的简单路线 - 并且为了记录,我不知道这是否真的更快,因为我不确定 JSON.parse 的内部工作原理

以上是关于如何使用javascript将字符串数组转换为布尔值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JavaScript 中将字符串转换为布尔值?

如何在Java中将二维布尔数组转换为一维字节数组?

在javascript中将字符串转换为布尔值[重复]

JS:将布尔列表转换为紧凑字符串?

如何将布尔数组转换为int数组

在javascript中如何将字符串转换为数组和数组转换为字符串