У меня есть массив объектов, как показано ниже:Получить данные, основанные на поле, которое вычисляется при условии
var data = [
{ SrNo: 1, BabyName: 'A', ParentName: 'X' },
{ SrNo: 2, BabyName: 'D', ParentName: 'X' },
{ SrNo: 3, BabyName: 'B', ParentName: 'Y' },
{ SrNo: 4, BabyName: 'E', ParentName: 'Y' },
{ SrNo: 5, BabyName: 'C', ParentName: 'Z' }
]
Я получаю ввод как массив BabyNames
, и я должен найти ParentNames
для них, а затем фильтровать данные по ParentNames
как мощность.
input = ['A','B'];
Так что, если мой вход ['A','B']
мой ожидается выход массив из 4 объектов (SrNo 1,2,3,4)
То, что я сделал для достижения
//filter all objects for matching BabyNames
var a1 = _.filter(data, function (item) { return _.contains(input, item["BabyName"]); })
//pluck ParentNames from a1 array of objects and take unique
var a2 = _.uniq(_.pluck(a1,"ParentName"))
//filter all objects (original data set) on ParentName with a2 as input
var a3 = _.filter(data, function (item) { return _.contains(a2, item["ParentName"]); })
I находят это не эффективным способом, но не могут прийти к какому-либо другому решению. Пожалуйста, руководство.
Is SrNo наследует свойства объекта от имени BabyName, который наследует свойства от parentName? Не знаете, как читать приведенную выше диаграмму объекта. –
_ «массив объектов, как показано ниже» _, это не массив объектов. Пожалуйста, укажите [mcve]. –
Я добавил переменную входных данных – iTSrAVIE