Допустим, есть массив var arrayQuestion = [0, 1, 0, 1, 0];
Необходимо получить позиции, где встречается единица. Метод indexOf() выдаёт по одному результату на запрос.
arrayQuestion.indexOF(1); // результат 1 arrayQuestion.indexOF(1, 2); // результат 3
А нет ли готового изящного метода (решения), где на выходе будет массив из индексов единицы в массиве arrayQuestion?
То есть в нашем случае это должен быть arrayResult = [1, 3]
Возможно, понравится такой вариант:
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]
вот вполне изящный вариант:
const reduceFn = (prev, item, index) => item === 1 ? [...prev, index] : prev;
[0, 1, 0, 1, 0].reduce(reduceFn, []); //[1, 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]
Пока что лучшее из всего, что удалось найти (на что не ругается Гугл) - вариант ответа в англоязычной версии этого сайта: (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));
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Не могу подключить в конфиг webpack сборку scss файлов в css файлПодскажите, пож-ста, в чём ошибка, вот webpack
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме
Ситуация, казалось, простая, но я окончательно запуталсяСуть в том, что надо каждому элементу добавить id значение которого = атрибуту value