Javascript Angular js在json对象内将字符串属性转换为布尔值

Javascript Angular js在json对象内将字符串属性转换为布尔值,javascript,Javascript,我正在使用angular js,我有以下数组,其中包含许多json对象,每个对象都有属性“isSingle”,其中包含“true”或“false”,我的问题是如何将此属性转换为布尔值true或false: [ { "noFolder": "AW343", "type": "T7", "creationDate": "22/05/2017", "isSingle": "true" }, { "noFolder":

我正在使用angular js,我有以下数组,其中包含许多json对象,每个对象都有属性“isSingle”,其中包含“true”或“false”,我的问题是如何将此属性转换为布尔值true或false:

[
    {
      "noFolder": "AW343",
      "type": "T7",
      "creationDate": "22/05/2017",
      "isSingle": "true"
    },
    {
      "noFolder": "AW35",
      "type": "T34",
      "creationDate": "09/05/2017",
      "isSingle": "false"
    },
    {
      "noFolder": "ASW3",
      "type": "T3",
      "creationDate": "05/07/2017",
      "isSingle": "true"
    },
    {
      "noFolder": "BG5",
      "type": "T1",
      "creationDate": "22/12/2018",
      "isSingle": "false"
    }

]
我想要的结果是拥有如下对象:

  {
      "noFolder": "ASW3",
      "type": "T3",
      "creationDate": "05/07/2017",
      "isSingle": true
    }

您知道如何将isSingle属性的类型更改为bbolean吗。我正在使用angularjs…

通过对象的简单循环将字符串转换为布尔值:

yourArray.forEach(x => x.isSingle = x.isSingle === 'true');

通过对象进行简单循环以将字符串转换为布尔值:

yourArray.forEach(x => x.isSingle = x.isSingle === 'true');

只需迭代数组并根据您的需求替换值,如下所示-

var obj = [
    {
      "noFolder": "AW343",
      "type": "T7",
      "creationDate": "22/05/2017",
      "isSingle": "true"
    },
    {
      "noFolder": "AW35",
      "type": "T34",
      "creationDate": "09/05/2017",
      "isSingle": "false"
    },
    {
      "noFolder": "ASW3",
      "type": "T3",
      "creationDate": "05/07/2017",
      "isSingle": "true"
    },
    {
      "noFolder": "BG5",
      "type": "T1",
      "creationDate": "22/12/2018",
      "isSingle": "false"
    }

]

obj.map((e) => {
    e.isSingle == "true" ? e.isSingle = true : e.isSingle = false
});

只需迭代数组并根据您的需求替换值,如下所示-

var obj = [
    {
      "noFolder": "AW343",
      "type": "T7",
      "creationDate": "22/05/2017",
      "isSingle": "true"
    },
    {
      "noFolder": "AW35",
      "type": "T34",
      "creationDate": "09/05/2017",
      "isSingle": "false"
    },
    {
      "noFolder": "ASW3",
      "type": "T3",
      "creationDate": "05/07/2017",
      "isSingle": "true"
    },
    {
      "noFolder": "BG5",
      "type": "T1",
      "creationDate": "22/12/2018",
      "isSingle": "false"
    }

]

obj.map((e) => {
    e.isSingle == "true" ? e.isSingle = true : e.isSingle = false
});
使用reduce方法

let updated_array = array.reduce(function(acc, elem) {
    acc.push(Object.assign({}, elem, { isSingle: (elem['isSingle'] == true ? true : false) }));
    return acc;
}, []);
使用reduce方法

let updated_array = array.reduce(function(acc, elem) {
    acc.push(Object.assign({}, elem, { isSingle: (elem['isSingle'] == true ? true : false) }));
    return acc;
}, []);

如果您使用的是angular,那么请阅读。您是否应该使用Typescript而不是Javascript?可能的重复是在服务器API上解决此问题,并让它为布尔值返回有效的JSON,如
“{…,“isSingle”:true}”
?如果您使用angular,请阅读,您不应该使用Typescript而不是Javascript吗?可能是重复的,在服务器API上解决这个问题,并让它为布尔值返回有效的JSON,如
“{…,“isSingle”:true}”
?@str我在控制台上尝试过,这段代码中有错误吗?是的,同意您的观点。是的,它修改了原文object@str我在我的控制台上试过了,这个代码有错误吗?是的,同意你的观点。是的,它会修改原始对象