преобразовать строковое значение в логическое (истина или ложь) - PullRequest
0 голосов
/ 08 марта 2020

то есть у меня есть данные, подобные приведенным ниже:

[{"id":"slz1","checked":"false"},{"id":"slz2","checked":"false"},{"id":"slz3","checked":"false"},{"id":"slz4","checked":"false"},{"id":"slz5","checked":"false"},{"id":"slz6","checked":"false"},{"id":"slz7",...........................}]

Какой хороший способ найти и преобразовать мои " false ", например, в false, так как мне нужно логическое значение true или false без кавычек.

Я получаю данные, как показано ниже:

  $.getJSON("./coolBeans.json", function(json) {
            data = json[key];
            console.log(data);         
   ...................

Ответы [ 5 ]

1 голос
/ 08 марта 2020

Как насчет чего-то вроде:

var str = '[{"id":"slz1","checked":"false"},{"id":"slz2","checked":"false"},{"id":"slz3","checked":"false"},{"id":"slz4","checked":"false"},{"id":"slz5","checked":"false"},{"id":"slz6","checked":"false"},{"id":"slz7","checked":"true"}]'

var res = str.replace(/\"false\"|\"true\"/gi, function (x) { // Checks for any "false" or "true" string, replace global and case insensitive
  return x.substr(1, x.length-2); // skip first '"' and last '"' char
}); 

document.write( res );

Результат

[{"id": "slz1", "флажок": false }, {" идентификатор ":" slz2" , "проверено": ложь }, { "ID": "slz3", "проверено": ложь }, { "ID": "slz4" , "проверено": ложь }, { "ID": "slz5", "проверено": ложь }, { "ID": "slz6", "проверено": false }, {"id": "slz7", ...........................}]

Затем обработайте ваши данные.

Надеюсь, это поможет!

0 голосов
/ 08 марта 2020

В качестве ответов используют if / else или троичный оператор для возврата true или false, и меня раздражает, что я публикую свой ответ, в котором не используется if или троичный оператор

var data = 
    [ { "id": "slz1", "checked": "false" } 
    , { "id": "slz2", "checked": "false" } 
    , { "id": "slz3", "checked": "true"  } 
    , { "id": "slz4", "checked": "false" } 
    , { "id": "slz5", "checked": "false" } 
    , { "id": "slz6", "checked": "false" } 
    ] 

var res = data.map(val=>({...val, checked:val.checked!=='false'}))

console.log(res);
0 голосов
/ 08 марта 2020

Просто использовать клавиши map и condition на checked должно быть достаточно просто:

var data = [{
  "id": "slz1",
  "checked": "false"
}, {
  "id": "slz2",
  "checked": "false"
}, {
  "id": "slz3",
  "checked": "true"
}, {
  "id": "slz4",
  "checked": "false"
}, {
  "id": "slz5",
  "checked": "false"
}, {
  "id": "slz6",
  "checked": "false"
}];

var res = data.map((val) => {
  val.checked = val.checked == "false" ? false : true;
  return val;
});
console.log(res);
0 голосов
/ 08 марта 2020

Небольшое исправление другого ответа для учета как истинного, так и ложного сценария

var arrayObj = `[{
                "id":"slz1",
                "checked":"false"
                },{
                  "id":"slz2",
                  "checked":"false"
                },{
                  "id":"slz3",
                  "checked":"false"
                },{
                  "id":"slz4",
                  "checked":"true"
                },{
                  "id":"slz5",
                  "checked":"false"
                },{
                  "id":"slz6",
                  "checked":"false"
                },{
                  "id":"slz7",
                  "checked": "false"
                }]`;
var parse = JSON.parse(arrayObj);

var newArray = parse.slice();
newArray.forEach(val => {
  val.checked = val.checked == 'true'? true: false
});
console.log(newArray);
0 голосов
/ 08 марта 2020
var arrayObj = `[{
                "id":"slz1",
                "checked":"false"
                },{
                  "id":"slz2",
                  "checked":"false"
                },{
                  "id":"slz3",
                  "checked":"false"
                },{
                  "id":"slz4",
                  "checked":"false"
                },{
                  "id":"slz5",
                  "checked":"false"
                },{
                  "id":"slz6",
                  "checked":"false"
                },{
                  "id":"slz7",
                  "checked": "true"
                }]`;


var parsed = JSON.parse(arrayObj);
parsed.forEach(val => {
  if (val.checked === 'false') {
    val.checked = false;
  } else if (val.checked === 'true) {
    val.checked = true;
  }
});
console.log(parsed);

Я анализирую массив JSON объекта. L oop через каждый объект в массиве и проверьте строковое значение свойства selected. сделайте условное утверждение, что если значением флажка является строка «ложь», тогда установите для него логическое значение «ложь», если для строки «истина», то установите для него значение «логическое значение true».

Надеюсь, это поможет.

...