我是 Javascript 新手,我目前正在尝试创建一个谷歌表,列出 AD 组中的所有用户 + 他们的电话号码。然而,当我在下面运行这个脚本时,应该有电话号码的单元格也有,“类型=工作,值=(000)123-4567。我只想显示电话号码本身。怎么会我解决了这个问题?我确定我错过了一些简单的东西
function writeToSpreadsheet(){
var values = [];
var users = AdminDirectory.Users.list({domain:'companydomain.com'}).users;
for (var i=0; i<users.length; i++){
values.push([users[i].name.fullName, users[i].phones]);
var spreadsheetUrl = 'https://docs.userinfospreadsheet';
SpreadsheetApp.openByUrl(spreadsheetUrl).getSheets()[0].getRange(1, 1, values.length, values[0].length).setValues(values)
答案 0 :(得分:1)
As the documentations states, function access(arr, indexes) {
while (indexes.length > 0) {
arr = arr[indexes[0]];
indexes = indexes.slice(1);
}
return arr;
}
const arr = [[[[[123, 234]]]], [[],[],[[],[],[],[[],[],[],[],[0,0,0,0,0,987]]]]];
console.log(access(arr, [0,0,0,0,0]));
console.log(access(arr, [0,0,0,0,1]));
console.log(access(arr, [1,2,3,4,5]));
是一个对象数组。处理它们的最简单方法是使用将它们转换为字符串的函数:
phones
这将以以下形式列出电话:
function generatePhonesCell(phones) {
return phones
.map(phone => {
const value = phone.value
const type = phone.type.replaceAll('_', ' ')
return `${value} (${type})`
})
.join('\n')
}
您只需要将它们添加到您现有的代码中:
(000)123-4567 (home)
(000)765-4321 (work)
答案 1 :(得分:0)
我认为用户的手机属性不是字符串,而是一个对象或列表。
为了获得电话号码的好列表,您必须将推送到值数组的 users[i].phones
替换为函数调用 getPhones(users[i].phones)
这个函数应该是这样的:
如果用户手机是对象数组 [{type: 'work', value: '(000)123-4567'}]
:
function getPhones(arr) {
return arr.map(function(phoneObj) {
return phoneObj.value;
}).join(', ')
}
或者如果它只是一个对象 replce users[i].phones
with users[i].phones.value