Получить отфильтрованные элементы из объекта - PullRequest
0 голосов
/ 04 июля 2019

Я хочу получить значение, связанное с условием «Цвет», определенным в переменной А.

Я получаю ключи от объекта, но я хочу получить значение, связанное с условием «Цвет»

function TestOBJ(){

var A = [
  [['apple'],'red'],
  [['tomatoes','strawberry'],'red'],
  [['sky', 'deep sea'],'blue'],
  [['frog'],'green']
  ]

 var dataOBJ={};
 for(var j=0;j<A.length;j++){  
    dataOBJ[j]= {
    CONTENT: A[j][0],
     COR: A[j][1]
  }
   }

Logger.log(dataOBJ);

const filtered = Object.keys(dataOBJ)
               .filter(function esSuficientementeGrande(elemento) {
                 //Logger.log(dataOBJ[elemento].CONTENT[0]);
                 if( dataOBJ[elemento].COR == 'red'){
                   Logger.log(dataOBJ[elemento].CONTENT);
                   return JSON.stringify(dataOBJ[elemento]);
                    }
               });

 Logger.log(filtered);

}

Например: Я ожидаю результатов: яблоко помидоры, клубника

1 Ответ

1 голос
/ 05 июля 2019
  • Вы хотите получить значения по условию цвета.
  • Например, когда вы задаете red в качестве условия, вы хотите получить apple tomatoes, strawberry.
    • В этом случае я подумал, что вам может понадобиться "apple", "tomatoes", "strawberry".
  • Вы хотите добиться этого с помощью Google Apps Script.

Если мое понимание верно, как насчет этой модификации?Пожалуйста, подумайте об этом как об одном из нескольких ответов.

Модифицированный скрипт 1:

Если ваш скрипт модифицирован, как насчет этой модификации?

function TestOBJ(){
  var A = [
    [['apple'],'red'],
    [['tomatoes','strawberry'],'red'],
    [['sky', 'deep sea'],'blue'],
    [['frog'],'green']
  ]

  var dataOBJ={};
  for(var j=0;j<A.length;j++){
    dataOBJ[j]= {
      CONTENT: A[j][0],
      COR: A[j][1]
    }
  }

  Logger.log(dataOBJ);

  const filtered = Object.keys(dataOBJ)
  .reduce(function(ar, elemento) {
    if (dataOBJ[elemento].COR == 'red') ar = ar.concat(dataOBJ[elemento].CONTENT);
    return ar;
  }, []);

  Logger.log(filtered);
}

Модифицированный скрипт 2:

Как другой шаблон, как насчет этого?

function TestOBJ(){
  var A = [
    [['apple'],'red'],
    [['tomatoes','strawberry'],'red'],
    [['sky', 'deep sea'],'blue'],
    [['frog'],'green']
  ]

  // I modified below script.
  var color = "red";
  var res = A.reduce(function(ar, e) {
    if (e[1] === color) ar = ar.concat(e[0]);
    return ar;
  }, []);
  Logger.log(res);
}

Результат:

["apple","tomatoes","strawberry"]

Ссылка:

Если я неправильно понял ваш вопрос, а это не тот результат, которого вы хотите, я приношу свои извинения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...