Повторим каждое значения в столбце указанное количество раз
var range = [
[1],
[''],
[2]
]
var n = 3
const dublik = (n, range) => range.reduce((total, el) => {
if (el[0]) {
var temp = []
temp.length = n
total.push(temp.fill([el[0]]))
};
return total;
}, []).flat();
console.log(dublik(n, range));
//return [ [ 1 ], [ 1 ], [ 1 ], [ 2 ], [ 2 ], [ 2 ] ]Разделить текст после каждого n-го слова в Google Sheet (с помощью Regex и Split)
Логика:
1.Вставьте разделитель рыб после каждого n-го слова - используя REGEXREPLACE.
2.Разделите текст по разделителям рыбы - с помощью SPLIT.
3.Наконец, измените разделенные столбцы на строки - используя TRANSPOSE.
Логика:
1.Вставьте разделитель рыб после каждого n-го слова - используя REGEXREPLACE.
2.Разделите текст по разделителям рыбы - с помощью SPLIT.
3.Наконец, измените разделенные столбцы на строки - используя TRANSPOSE.
=TRANSPOSE(split(REGEXREPLACE(A1;"(([a-zA-Zа-яА-Я'‘’:.,_?!”“)(}{\]\[]+\s){5})"; "$1🐬");"🐬"))
Volond Apps
Photo
Добавим группы разрядов
/Добавим группы разрядов
// Декларативно
var thousandSeparator = function(str) {
var parts = (str + '').split('.'),
main = parts[0],
len = main.length,
output = '',
i = len - 1;
while (i >= 0) {
output = main.charAt(i) + output;
if ((len - i) % 3 === 0 && i > 0) {
output = ' ' + output;
}
--i;
}
if (parts.length > 1) {
output += '.' + parts[1];
}
return output;
};
//ФП
const toCent = num => num * 100;
const divideBy100 = num => num / 100;
const roundTo2dp = num => num.toFixed(2);
const addDollarSign = str => '$' + String(str);
const addSeparators = str => {
// add commas before the decimal point
str = str.replace(/(?<!\.\d+)\B(?=(\d{3})+\b)/g, ` `);
// add commas after the decimal point
str = str.replace(/(?<=\.(\d{3})+)\B/g, ` `);
return str;
};
const compose = (...fns) => x => fns.reduceRight((res, fn) => fn(res), x);
const centsToDollars = compose(
addSeparators,
addDollarSign,
roundTo2dp,
divideBy100,
toCent,
);
console.log(thousandSeparator('12345678.9')) //12 345 678.9
console.log(centsToDollars('12345678.9')) //$12 345 678.90Можно ли сделать функцию getCommenters () в скрипте Google Apps?
Class DriveApp File скрипта Google Apps содержит следующие методы:
getViewers()
getEditors()
Но метод getCommenters недоступен.
(Это интересно, поскольку addCommenter addCommenters addCommenter , addCommenters и removeCommenter .)
Я делаю сценарий, в котором меняю права доступа к файлам и папкам на основе адресов электронной почты в электронной таблице.
Я хотел бы иметь функциональность getCommenters чтобы я мог сравнить, являются ли электронные письма комментатора в электронной getCommenters уже комментариями к файлу, поэтому не нужно будет снова addCommenters эти электронные письма с помощью addCommenters .
(Нажатие на него создаст новое электронное письмо для пользователя.)
Нет проблем в том, чтобы сделать это со средствами просмотра и редакторами, так как методы доступны.
Вопрос: возможно ли создать функцию, которая будет имитировать предполагаемую функциональность getCommenters ? Или хотя бы вытащить массив адресов электронной почты комментаторов?
Ответ
getViewers() возвращает зрителей и комментаторов. Вы можете отфильтровать список, используя getAccess() :
Class DriveApp File скрипта Google Apps содержит следующие методы:
getViewers()
getEditors()
Но метод getCommenters недоступен.
(Это интересно, поскольку addCommenter addCommenters addCommenter , addCommenters и removeCommenter .)
Я делаю сценарий, в котором меняю права доступа к файлам и папкам на основе адресов электронной почты в электронной таблице.
Я хотел бы иметь функциональность getCommenters чтобы я мог сравнить, являются ли электронные письма комментатора в электронной getCommenters уже комментариями к файлу, поэтому не нужно будет снова addCommenters эти электронные письма с помощью addCommenters .
(Нажатие на него создаст новое электронное письмо для пользователя.)
Нет проблем в том, чтобы сделать это со средствами просмотра и редакторами, так как методы доступны.
Вопрос: возможно ли создать функцию, которая будет имитировать предполагаемую функциональность getCommenters ? Или хотя бы вытащить массив адресов электронной почты комментаторов?
Ответ
getViewers() возвращает зрителей и комментаторов. Вы можете отфильтровать список, используя getAccess() :
const getCommenters = (file) =>
file.getViewers().filter(user=>
file.getAccess(user) == "COMMENT")Определение конкретного типа любого объекта
/*Определение конкретного типа любого объекта
Как мы знаем, в JavaScript есть пять примитивных типов данных и объектный тип данных.
Но знаете ли вы, что объектный тип данных можно подразделить на множество начальных типов?
Объект может быть ARRAY, FUNCTION, MAP,REGEXP и т. д.
Если мы хотим получить конкретный тип объекта, что нам делать?
*/
function toRawType(value) {
let _toString = Object.prototype.toString;
let str = _toString.call(value)
return str.slice(8, -1)
} //
console.log(toRawType(/\s/i)) // RegExp
console.log(toRawType([1, 2])) //Array
console.log(toRawType((() => console.log('1')))) //Function
#SnippetКак правильно задавать вопросы, если ты начинающий айтишник
Тем, кто уже стал, или еще только мечтает стать начинающим разработчиком, я могу дать следующие рекомендации:
1.Изучайте проблему самостоятельно
2.Сначала сообщайте цель, потом озвучивайте проблему
3.Пишите грамотно и по существу
4.Задавайте вопросы по адресу и делитесь решением
4.Уважайте чужое время
5.Смотрите шире
А теперь подробнее.
Тем, кто уже стал, или еще только мечтает стать начинающим разработчиком, я могу дать следующие рекомендации:
1.Изучайте проблему самостоятельно
2.Сначала сообщайте цель, потом озвучивайте проблему
3.Пишите грамотно и по существу
4.Задавайте вопросы по адресу и делитесь решением
4.Уважайте чужое время
5.Смотрите шире
А теперь подробнее.
Telegraph
Как правильно задавать вопросы, если ты начинающий айтишник
Тем, кто уже стал, или еще только мечтает стать начинающим разработчиком, я могу дать следующие рекомендации: Изучайте проблему самостоятельно Сначала сообщайте цель, потом озвучивайте проблему Пишите грамотно и по существу Задавайте вопросы по адресу и делитесь…
Изучаю Proxy
В Google Apps Script, в связи с переходом на версию V8 , появилась новая возможность, которая пока используется не особенно широко. Речь идёт о прокси-объектах.
Прокси позволяют создавать обёртки для других объектов, организовывая перехват операций доступа к их свойствам и операций вызова их методов.
Причём, это работает даже для несуществующих свойств и методов проксируемых объектов.
далее
В Google Apps Script, в связи с переходом на версию V8 , появилась новая возможность, которая пока используется не особенно широко. Речь идёт о прокси-объектах.
Прокси позволяют создавать обёртки для других объектов, организовывая перехват операций доступа к их свойствам и операций вызова их методов.
Причём, это работает даже для несуществующих свойств и методов проксируемых объектов.
далее
Telegraph
Изучаю Proxy
В Google Apps Script, в связи с переходом на версию V8 , появилась новая возможность, которая пока используется не особенно широко. Речь идёт о прокси-объектах.
Замена по словарю
В дружественном чате возник вопрос если в тексте встречаются буквы латиницы которые похожи на кириллицу,как их найти и заменить.Получилось вполне симпатично ,причем данный #snippet вполне можно применять для решения задачи "Замена по словарю"
В дружественном чате возник вопрос если в тексте встречаются буквы латиницы которые похожи на кириллицу,как их найти и заменить.Получилось вполне симпатично ,причем данный #snippet вполне можно применять для решения задачи "Замена по словарю"
Принцип разделения функциональности (в табличных процессорах)
@oshliaer
ПРФ (в электронных таблицах) - предложение не использовать смешение функций табличных процессоров (ТП). Если разделить функции ТП на хранение, обработку и представление, то можно значительно упростить использование и расширить функционал рабочей модели, которую обслуживает ТП. Самый простой способ достижения этого - использовать правило: "одна функция - один лист". Например, для Таблицы Гугл, которая получает данные из Формы, функцию хранения выполняет лист, привязанный к Форме. Если необходимо как-то модифицировать данные, то необходимо использовать второй лист, для обработки. Если требуется распечатать или вывести на экран в читаемом виде текущие данные, то необходимо использовать третий лист - представление.
подробнее...
@oshliaer
ПРФ (в электронных таблицах) - предложение не использовать смешение функций табличных процессоров (ТП). Если разделить функции ТП на хранение, обработку и представление, то можно значительно упростить использование и расширить функционал рабочей модели, которую обслуживает ТП. Самый простой способ достижения этого - использовать правило: "одна функция - один лист". Например, для Таблицы Гугл, которая получает данные из Формы, функцию хранения выполняет лист, привязанный к Форме. Если необходимо как-то модифицировать данные, то необходимо использовать второй лист, для обработки. Если требуется распечатать или вывести на экран в читаемом виде текущие данные, то необходимо использовать третий лист - представление.
подробнее...
Telegraph
Принцип разделения функциональности (в табличных процессорах)
ПРФ (в электронных таблицах) - предложение не использовать смешение функций табличных процессоров (ТП). Если разделить функции ТП на хранение, обработку и представление, то можно значительно упростить использование и расширить функционал рабочей модели, которую…
Собираем из всех листов значения кроме текущего
Добавляем уникальный ключ для строк
(Пользовательская формула)
таблица
Добавляем уникальный ключ для строк
(Пользовательская формула)
таблица
Как сделать склонение числительных на javascript.
Без склонения числительных пользователь может увидеть «8 мортышка(ек)» или «4 трамваев» и т.д. Это не красиво и усложняет процесс восприятия интерфейса.
Поэтому для многих стало нормой делать системы, которые бы склоняли числительные, так, чтобы пользователю было удобно читать интерфейс, так, как будто интерфейс – живое существо.
#snippet #JS
Без склонения числительных пользователь может увидеть «8 мортышка(ек)» или «4 трамваев» и т.д. Это не красиво и усложняет процесс восприятия интерфейса.
Поэтому для многих стало нормой делать системы, которые бы склоняли числительные, так, чтобы пользователю было удобно читать интерфейс, так, как будто интерфейс – живое существо.
#snippet #JS
Telegraph
Как сделать склонение числительных на javascript.
Без склонения числительных пользователь может увидеть «8 мортышка(ек)» или «4 трамваев» и т.д. Это не красиво и усложняет процесс восприятия интерфейса. Поэтому для многих стало нормой делать системы, которые бы склоняли числительные, так, чтобы пользователю…
clasp - The Apps Script CLI
Apps Script CLI, или clasp, это инструмент, позволяющий создавать, редактировать и развертывать проекты Apps Script локально. Он позволяет создавать и публиковать веб-приложения и надстройки для таких продуктов, как Таблицы, Документы, Формы и Слайды, из командной строки. Есть два способа разработки Apps Script: с помощью script.google.com или локально на вашем компьютере.
Инструкция
Вы также можете попробовать clasp в Gitpod, онлайн-среде IDE для GitHub
Apps Script CLI, или clasp, это инструмент, позволяющий создавать, редактировать и развертывать проекты Apps Script локально. Он позволяет создавать и публиковать веб-приложения и надстройки для таких продуктов, как Таблицы, Документы, Формы и Слайды, из командной строки. Есть два способа разработки Apps Script: с помощью script.google.com или локально на вашем компьютере.
Инструкция
Вы также можете попробовать clasp в Gitpod, онлайн-среде IDE для GitHub
Forwarded from St M
Для быстрого доступа к видосам , выкладываю ссылки на все плейлисты по всем сервисам на которые есть видео:
Google Sheets (Таблицы Гугл) Lessons: https://www.youtube.com/playlist?list=PLlHR3f8sb05BNZ_mWF0Qt2oqnHKwOSJRf
Фишки, Трюки и Лайфхаки Гугл Таблиц: https://www.youtube.com/playlist?list=PLlHR3f8sb05Cz8TH3s_wRAZkjVqGttZS4
Google Apps Script, Скрипты в Гугл таблицах: https://www.youtube.com/playlist?list=PLlHR3f8sb05B9n0jnXgS3yxn2CTQ3XOGS
Уроки по Гугл Формам
https://www.youtube.com/watch?v=OGHl45NwzhI&list=PLlHR3f8sb05DqlFCMfek-Nbje-9lJaDfY
Новости Google Таблиц.: https://www.youtube.com/playlist?list=PLlHR3f8sb05CDpAMfg6l5liYSUP35HOu2
Google Docs, Гугл Докс, Гугл документы - уроки!: https://www.youtube.com/playlist?list=PLlHR3f8sb05DV0FdQl1IC5zx14Ub52YF0
Google Sheets (Таблицы Гугл) Lessons: https://www.youtube.com/playlist?list=PLlHR3f8sb05BNZ_mWF0Qt2oqnHKwOSJRf
Фишки, Трюки и Лайфхаки Гугл Таблиц: https://www.youtube.com/playlist?list=PLlHR3f8sb05Cz8TH3s_wRAZkjVqGttZS4
Google Apps Script, Скрипты в Гугл таблицах: https://www.youtube.com/playlist?list=PLlHR3f8sb05B9n0jnXgS3yxn2CTQ3XOGS
Уроки по Гугл Формам
https://www.youtube.com/watch?v=OGHl45NwzhI&list=PLlHR3f8sb05DqlFCMfek-Nbje-9lJaDfY
Новости Google Таблиц.: https://www.youtube.com/playlist?list=PLlHR3f8sb05CDpAMfg6l5liYSUP35HOu2
Google Docs, Гугл Докс, Гугл документы - уроки!: https://www.youtube.com/playlist?list=PLlHR3f8sb05DV0FdQl1IC5zx14Ub52YF0
Получение периода в Зависимости от дня формирования
Мне иногда необходимо получить период отчета в зависимости от дня
когда я его формирую
То есть если допустим сегодня 1 число а день отчета 7 дней
то получу период Прошлый месяц
а если сегодня 10 то период будет с начала текущего месяца по сегодня
далее...
Мне иногда необходимо получить период отчета в зависимости от дня
когда я его формирую
То есть если допустим сегодня 1 число а день отчета 7 дней
то получу период Прошлый месяц
а если сегодня 10 то период будет с начала текущего месяца по сегодня
далее...
getLastDayOfMonth.png
108.4 KB
Последний день месяца
/**
* Последний день месяца
*
* @param {Number} year
* @param {Number} month
* @returns {Date}
*/
function getLastDayOfMonth(year, month) {
//0-11 Номера месяцев
let date = new Date(year, month + 1, 0);
return date.getDate();
}