【问题标题】:How to convert an array of strings to boolean using javascript? [duplicate]如何使用javascript将字符串数组转换为布尔值? [复制]
【发布时间】:2021-12-23 11:03:43
【问题描述】:

我想使用 javascript 将字符串数组转换为布尔数组。

我有一个字符串数组,如下所示

const data = ["true", "false", "false", "false", "true"]

如何将上面的字符串数组转换为如下的布尔数组,

const data = [true, false, false, false, true]

我如何使用 javascript 来做到这一点。有人可以帮我吗?谢谢。

【问题讨论】:

标签: 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 的内部工作原理
    猜你喜欢
    • 2016-04-05
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 2017-06-03
    • 2011-05-19
    相关资源
    最近更新 更多