Есть ли готовый метод в Apps Script, который выдаёт массив с индексами искОмого элемента?

117
05 марта 2021, 17:10

Допустим, есть массив var arrayQuestion = [0, 1, 0, 1, 0];

Необходимо получить позиции, где встречается единица. Метод indexOf() выдаёт по одному результату на запрос.

arrayQuestion.indexOF(1); // результат 1 arrayQuestion.indexOF(1, 2); // результат 3

А нет ли готового изящного метода (решения), где на выходе будет массив из индексов единицы в массиве arrayQuestion?

То есть в нашем случае это должен быть arrayResult = [1, 3]

Answer 1

Возможно, понравится такой вариант:

var arrayQuestion = [0, 1, 0, 1, 0];
var indexes = arrayQuestion.reduce(function(acc, cur, index) {
  if (cur == 1) acc.push(index);
  return acc;
}, []);
Logger.log(indexes);  // [1, 3]
Answer 2

вот вполне изящный вариант:

const reduceFn = (prev, item, index) => item === 1 ? [...prev, index] : prev; 
 
[0, 1, 0, 1, 0].reduce(reduceFn, []); //[1, 3];

Answer 3

function indexes(arr, value) { 
  let result = []; 
  for (let [key, value] of Object.entries(arr)) { 
    if (value === 1) result.push(+key); 
  } 
  return result; 
} 
 
let arr = [0, 1, 0, 1, 0]; 
 
console.log(indexes(arr, 1)); // [1, 3]

Answer 4

Пока что лучшее из всего, что удалось найти (на что не ругается Гугл) - вариант ответа в англоязычной версии этого сайта: (https://stackoverflow.com/questions/20798477/how-to-find-index-of-all-occurrences-of-element-in-array):

function getAllIndexes(arr, val) {
    var indexes = [];
    for(var i = 0; i < arr.length; i++) {
        if (arr[i] == val) {
            indexes.push(i);
        }
    }
    return indexes;
}

 Logger.log(getAllIndexes([0, 1, 0, 1, 0], 1));
READ ALSO
Сборка webpack + sass

Сборка webpack + sass

Не могу подключить в конфиг webpack сборку scss файлов в css файлПодскажите, пож-ста, в чём ошибка, вот webpack

121
Не подключается СSS

Не подключается СSS

у меня возникла такая проблема - есть файлы styleForLabacss, program

157
Смена фото на карточке товара при ховере [закрыт]

Смена фото на карточке товара при ховере [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме

98
Почему возвращает [object Object]?

Почему возвращает [object Object]?

Ситуация, казалось, простая, но я окончательно запуталсяСуть в том, что надо каждому элементу добавить id значение которого = атрибуту value

76