многомерный массив
Приблизительный пример
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: Игорь} ] } .....] Нужно оставить только те объект в которых присутствует (допустим Петя) Или подскажите с чего мне начать. |
Цитата:
Или по синтаксису не знаешь как обратиться к этому "массиво-объекту"? Поскольку это не многомерный массив. :no: |
Зависит от проекта, но я бы советовал ознакомится с подобными инструментами... 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); И пересмотри свою структуру массива... зачем тебе массив в котором объект?)) |
извиняюсь подправил
|
Цитата:
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) |
спасибо
|
Часовой пояс GMT +3, время: 19:36. |