Возврат только истинного логического значения JSON объектов - PullRequest
1 голос
/ 29 февраля 2020

Я хотел бы вернуть JSON объектов в javascript / typescript, которые имеют истинное логическое значение для "team". Пример JSON, который я использую:

{
    "state": "Texas",
    "stateId": 1,
    "team": true
},
{
    "state": "California",
    "stateId": 5,
    "team": false
},
{
    "state": "Rhode Island",
    "stateId": 14,
    "team": true
}

Так что он должен вернуть Техас и Род-Айленд в массиве. Пока что я написал следующий код, но он не учитывает различные логические значения, и я не уверен, почему:

jsonString: any;
stateArray: any;

constructor() {
this.jsonString = JSON.stringify(data);
this.stateArray = JSON.parse(this.jsonString);

  this.stateArray.filter(function(array) {
  if (data["team"] === true) {
      return array;
  }
});

console.log(this.stateArray);

Большое спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 29 февраля 2020

Array.filter * Обратный вызов выполняется для каждого элемента вашего массива и ожидает обратного вызова, который принимает один элемент в качестве параметра и возвращает значение boolean. Попробуйте:

let stateArray = [{
    "state": "Texas",
    "stateId": 1,
    "team": true
},
{
    "state": "California",
    "stateId": 5,
    "team": false
},
{
    "state": "Rhode Island",
    "stateId": 14,
    "team": true
}]

let result = stateArray.filter(function(state) {
  return state.team;
});

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

Даже вы можете сделать это в одной строке, используя оператор стрелки ES6.

Пожалуйста, найдите ниже код.

let stateArray = [{
    "state": "Texas",
    "stateId": 1,
    "team": true
},
{
    "state": "California",
    "stateId": 5,
    "team": false
},
{
    "state": "Rhode Island",
    "stateId": 14,
    "team": true
}]

let result = stateArray.filter(state => state.team);

console.log(result);
...