‼️Стань быстрее с доменом .NEW‼️
💣ПРОСТО ПРИПИНЬ ЭТО СООБЩЕНИЕ💣
https://doc.new
https://sheet.new
https://slides.new
https://form.new
https://keep.new
https://site.new
https://meet.new
https://cal.new
Ваши Скрипты
Статус работы сервисов Google
all.new
💣ПРОСТО ПРИПИНЬ ЭТО СООБЩЕНИЕ💣
https://doc.new
https://sheet.new
https://slides.new
https://form.new
https://keep.new
https://site.new
https://meet.new
https://cal.new
Ваши Скрипты
Статус работы сервисов Google
all.new
function PIB(text) {
if(!Array.isArray(text)){text=[[text]]}
//var text=[['А.В. Петров.'],['С.А. Васильев, И. Г. Безфамильный']]
text=text.filter(e=>!!e[0])
var ws=text.map(q=>q[0].split(","))
var f=(m)=>m.split(".").map(s=>s.trim()).filter(el=>!!el)
var z=(z)=>{
var [a,b,c]=f(z)
return [c,[a+".",b+"."].join(' ')].join(" ")
}
var res=ws.map(r=>[r.map(u=>z(u)).join(",").trim()])
console.log(res)
return res
}//Пример удаления задвоеных пробелов и пробелов в начале и конце в JavaScript:
Text=' иванов сергей иванович '
Text = Text.replace(/ {1,}/g," ").trim();
//Пример удаления разрывов строк в JavaScript:
Text = Text.replace(/(\r\n|\n|\r)/gm," ");
console.log(Text);
//Text='иванов сергей иванович'
console.log(Text.split(" ").map(word=>{
var [ferst,...rest]=[...word]
return [ferst.toUpperCase(),rest.join('').toLowerCase()].join('')
}).join(' '))
//return Иванов Сергей Иванович
//Text='иванов сергей иванович'
console.log(Text.split(" ").map((word,i)=>{
var [ferst,...rest]=[...word]
return i?[ferst.toUpperCase()+'.']:[ferst.toUpperCase(),rest.join('').toLowerCase()].join('')
}).join(' '))
//return Иванов С. И.
var Text='Иванов С. И.'
var [ferst,two,tree]=Text.split(" ");
Text= [two,tree,ferst].join(' ')
console.log(Text)
//return С. И. ИвановВыполнить что то по onEdit() в зависимости от имени листа
const sheet1=()=>console.log('sheet1')
const sheet2=()=>console.log('sheet2')
function onEdit(e){
var eNameSheet=e.range.getSheet().getName()
var sheetNameAction=['Sheet1','Sheet2']
var reduser={
['Аркуш1']:sheet1,
['Аркуш2']:sheet2,
}
reduser[eNameSheet]()
}Повторим каждое значения в столбце указанное количество раз
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