Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.03.2019, 10:30
Новичок на форуме
Отправить личное сообщение для guerragro Посмотреть профиль Найти все сообщения от guerragro
 
Регистрация: 25.03.2019
Сообщений: 3

многомерный массив
Приблизительный пример
var arr = [
{country: 'Россия', emergency_count: 2, names: [ {age: 15, name: Вася}, {age: 19, name: Петя}, {age: 20, name: Олег} ] },
{country: 'Казахстан', emergency_count: 2, names: [ {age: 33, name: Василий}, {age: 19, name: Петя}, {age: 17, name: Паша} ] } ,
{country: 'Белорусия', emergency_count: 2, names: [ {age: 55, name: Олег}, {age: 15, name: Ярослав}, {age: 35, name: Игорь} ] }
.....]

Нужно оставить только те объект в которых присутствует (допустим Петя)
Или подскажите с чего мне начать.

Последний раз редактировалось guerragro, 26.03.2019 в 10:24.
Ответить с цитированием
  #2 (permalink)  
Старый 25.03.2019, 10:40
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от guerragro
Нужно вывести age и name с именами Петя.
Ты поиск какой-то делаешь?
Или по синтаксису не знаешь как обратиться к этому "массиво-объекту"?

Поскольку это не многомерный массив.
Ответить с цитированием
  #3 (permalink)  
Старый 25.03.2019, 13:32
Новичок на форуме
Отправить личное сообщение для QoreCode Посмотреть профиль Найти все сообщения от QoreCode
 
Регистрация: 25.03.2019
Сообщений: 8

Зависит от проекта, но я бы советовал ознакомится с подобными инструментами... https://lodash.com

С этим инструментом код получится примерно такой:

var elements = [];

_.each(arr[0], (el)=>{
let filteredElements = _.filter(el.names[0], (element)=> element.name === "Петя"; );

if(filteredElements.length){
elements = _.union(filteredElements, elements);
}
})

console.log(elements);

И пересмотри свою структуру массива... зачем тебе массив в котором объект?))

Последний раз редактировалось QoreCode, 25.03.2019 в 17:02. Причина: По ошибке отправил раньше времени
Ответить с цитированием
  #4 (permalink)  
Старый 26.03.2019, 04:34
Новичок на форуме
Отправить личное сообщение для guerragro Посмотреть профиль Найти все сообщения от guerragro
 
Регистрация: 25.03.2019
Сообщений: 3

извиняюсь подправил
Ответить с цитированием
  #5 (permalink)  
Старый 26.03.2019, 08:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от guerragro
подправил
let arr = [
 {count: 3, emergency_count: 2, names: [{age: 15, name: "Вася"},{age: 19, name: "Петя"},{age: 20, name: "Олег"}]} ,
 {count: 3, emergency_count: 2, names: [{age: 33, name: "Василий"},{age: 19, name: "Петя"},{age: 17, name: "Паша"}]},
 {count: 3, emergency_count: 2, names: [{age: 55, name: "Олег"},{age: 15, name: "Ярослав"},{age: 35, name: "Игорь"}]}
 ]
const fn = (arr, str) => arr.filter(el => el.names.some(v => Object.values(v).includes(str)));
let ar = fn(arr, "Петя");
console.log(ar)
Ответить с цитированием
  #6 (permalink)  
Старый 26.03.2019, 10:29
Новичок на форуме
Отправить личное сообщение для guerragro Посмотреть профиль Найти все сообщения от guerragro
 
Регистрация: 25.03.2019
Сообщений: 3

спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление данных в многомерный массив rneft Элементы интерфейса 11 28.03.2016 17:56
Многомерный массив sparrow Общие вопросы Javascript 4 16.01.2014 14:58
Многомерный массив javascript simple Общие вопросы Javascript 20 03.11.2010 02:11
ajax и многомерный массив cat9 AJAX и COMET 1 03.10.2010 15:25
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14