#javascript #google-apps-script #google-admin-sdk
#javascript #google-apps-script #google-admin-sdk
Вопрос:
Я извлекаю пользовательские данные через каталог администратора Google, где я сохранил некоторые данные в схеме клиента. В одном поле этих данных клиента я храню строку, которая содержит n
поэтому я хотел бы разделить это на массив. Но по какой-то причине это не работает, и я хотел бы понять, почему и как это исправить. Это настройка:
Я захожу в панель администратора G Suite и перехожу к схеме одного пользователя и ввожу строку: Doesnt n work
.
В скрипте Apps я извлекаю эти данные и разделяю их. Но это не разбивает его на массив:
function listAllUsers(oa) {
var pageToken, page;
var userDatas = [];
do {
page = AdminDirectory.Users.list({
customer: 'my_customer',
query: 'orgUnitPath:' oa,
orderBy: 'givenName',
projection: 'full',
maxResults: 100,
pageToken: pageToken
});
var theData ='';
var users = page.users;
if (users) {
for (var i = 0; i < users.length; i ) {
var user = users[i];
if( (typeof user.customSchemas !== "undefined") amp;amp; ('myCustomSchema' in user.customSchemas)){
theData = user.customSchemas.myCustomSchema.myCustomSchemaField;
Logger.log(theData); // this shows Doesnt n work
var splitarray = theData.split('n'); // this shows this shows [Doesnt n work]
theData = 'Doesnt n work';
splitarray = theData.split('n'); // this shows [ Doesnt , work] which is correct
}
else{
Logger.log("no data");
}
}
pageToken = page.nextPageToken;
} while (pageToken);
Logger.log(userDatas);
return userDatas;
}
Как это возможно? Должен ли я сначала выполнить какое-то кодирование?
Комментарии:
1. ‘n’ не интерполирует новую строку, в то время как » n» это делает.
Ответ №1:
Я подозреваю, что строка на самом деле имеет обратную косую черту, за которой следует буква n
, вместо того, чтобы содержать в ней новую строку. Например, в строковых литералах: "Doesnt \n work"
(который при печати выглядит как Doesnt n work
).
Вы можете доказать это, сделав это:
Logger.log(theData.indexOf("\"));
…который даст вам индекс, по которому найдена обратная косая черта ( -1
если таковой нет), или это:
Logger.log(theData.split("").map(function(ch) { return ch "(" ch.charCodeAt(0) ")";}).join(", "));
…который показывает вам каждую единицу кода в строке и ее символьный код.
Комментарии:
1. это именно так.