Как я могу создать счетчик для определенных значений в списке? для Google appscript - PullRequest
1 голос
/ 28 мая 2020

[Да, Да, Да, Да, Да, Да, Нет, Да, Да, Нет, Да] этот список мне нужно подсчитать и присвоить переменной количество «Да» в этом списке и другую переменную сумму из нет

1 Ответ

0 голосов
/ 28 мая 2020

Я считаю, что ваша цель следующая.

  • Вы хотите получить количество Yes и No из массива ["Yes", "Yes", "Yes", "Yes", "Yes", "Yes", "No", "Yes", "Yes", "No", "Yes"] с помощью скрипта Google Apps.

Для этого, как насчет этого ответа?

Шаблон 1:

В этом шаблоне используется for l oop.

Пример сценария:

var ar = ["Yes", "Yes", "Yes", "Yes", "Yes", "Yes", "No", "Yes", "Yes", "No", "Yes"];
var obj = {};
for (var i = 0; i < ar.length; i++) {
  var e = ar[i];
  if (obj[e]) {
    obj[e] += 1;
  } else {
    obj[e] = 1;
  }
}
Logger.log(obj);  // {"Yes":9,"No":2}

Пробный пуск:

var ar = ["Yes", "Yes", "Yes", "Yes", "Yes", "Yes", "No", "Yes", "Yes", "No", "Yes"];
var obj = {};
for (var i = 0; i < ar.length; i++) {
  var e = ar[i];
  if (obj[e]) {
    obj[e] += 1;
  } else {
    obj[e] = 1;
  }
}
console.log(obj);  // {"Yes":9,"No":2}
console.log(obj.Yes)
console.log(obj.No)

Шаблон 2:

В этом шаблоне используется сокращение.

Пример сценария:

const ar = ["Yes", "Yes", "Yes", "Yes", "Yes", "Yes", "No", "Yes", "Yes", "No", "Yes"];
const obj = ar.reduce((o, e) => Object.assign(o, {[e]: (o[e] ? o[e] + 1 : 1)}), {});
console.log(obj);  // {"Yes":9,"No":2}
  • В этом случае можно также использовать синтаксис распространения, например {...o, [e]: (o[e] ? o[e] + 1 : 1)}. Но стоимость процесса синтаксиса спреда намного выше, чем у Object.assign. Итак, я предложил Object.assign. Ссылка

Пробный пуск:

const ar = ["Yes", "Yes", "Yes", "Yes", "Yes", "Yes", "No", "Yes", "Yes", "No", "Yes"];
const obj = ar.reduce((o, e) => Object.assign(o, {[e]: (o[e] ? o[e] + 1 : 1)}), {});
console.log(obj);
console.log(obj.Yes)
console.log(obj.No)

Примечание:

  • В случае приведенных выше сценариев значения Yes и No можно получить с помощью obj.Yes и obj.No соответственно.
  • О шаблоне 2 используйте V8.

Ссылки:

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