Надеюсь, я смогу сформулировать это.
Идея заключается в том, что мне нужно объединить несколько документов Google в один документ.Мне нужно сделать это по местоположению.
У меня есть лист, который содержит местоположение и идентификатор документа, которые я извлек в массив объектов (needBatches), а затем сгруппировал по критериям (местоположение):
const grouped = groupBy(needBatches, 'location');
function groupBy(objectArray, property) {
return objectArray.reduce(function (acc, obj) {
const key = obj[property];
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(obj);
return acc;
}, {});
}
Теперь я хочу получить идентификаторы документов, хранящиеся в каждом массиве, поэтому я пытаюсь сделать forEach, но получаю ошибку типа: «Не удается найти функцию forEach в объекте».
Итак, я перебираю массив следующим образом:
const arr = Object.keys(grouped).forEach(function(e) {
console.log(e, grouped[e])
});
В соответствии с журналом консоли теперь он выглядит так:
Location1 [{documentLink1=<link>, documentId1=<id>, folder1=<folder>},{documentLink2=<link>, documentId2=<id>, folder2=<folder>}]
Location2 [{documentLink1=<link>, documentId1=<id>, folder1=<folder>},{documentLink2=<link>, documentId2=<id>, folder2=<folder>}]
Это дает мне все в каждой строке, но мне действительно нужен только идентификатор документа, но я не могу понять, как вызвать его в этом формате.
Я пробовал:
grouped[e].documentId
grouped[e]["documentId"]
Я только начал работатьс массивами объектов, поэтому мои знания довольно ограничены.Кто-нибудь может мне помочь?
сгруппированный объект выглядит так:
Здесь я привожу только те строки, у которых нет документа:
const needBatches = dataRange.filter(function(e){
return e.documentLink !== ''
})
, который выглядит следующим образом: