У меня довольно сложный массив, созданный из API естественного языка Google. Я подаю ему абзац текста, и в нем содержится много информации о языке, касающейся такого абзаца.Извлечение данных из сложного массива без множества циклов FOR
Моя конечная цель - найти «ключевые слова» из этого абзаца, поэтому для этого я хочу поместить все «сущности» в плоский массив, посчитать дубликаты, а затем рассмотреть слова с наибольшим количеством дубликаты должны быть «ключевыми словами». Если он не найдет, то я буду вишневы выбирать слова из сущностей, которые я считаю наиболее значимыми.
Я уже знаю, объекты, которые могли бы существуют:
var entities = [
'art',
'events',
'goods',
'organizations',
'other',
'people',
'places',
'unknown'
];
Ниже приведен пример структуры массива я работаю.
input = [
{
language: {
entities: {
people: [
{
name: "Paul",
type: "Person",
},
{
name: "Paul",
type: "Person",
},
],
goods: [
{
name: "car",
type: "Consumer_good",
}
], //etc
}
}
}
];
output = ["Paul", "Paul", "car"...];
Мой вопрос - что это лучший способ, чтобы преобразовать мой исходный массив в плоский массив, чтобы затем найти дубликаты без используя целую кучу для петель?
Используйте один цикл, чтобы пройти через ваш основной массив объектов. Попросите его свойство быть массивом. Пропустите это и нажмите элемент в массив результатов, если он уже не indexOf вашего массива результатов. – fubbe