/ / Lodash _.chain с flatten за намиране на съвпадаща стойност масив - javascript, lodash

Lodash _.chain с flatten за намиране на съвпадение на стойност масив - javascript, lodash

Опитвам се да намеря съвпадащ обект от моя многоизмерен масив с помощта на библиотека. Използвам комбинация от _.chain заедно с изравняване, за да отидат на едно ниво по-надълбоко.

Не знам какъв подход трябва да използвам.Може ли някой да ми прегледа и да ми помогне, за да получа очаквания резултат?

JSFIDDLE Lin

var team = _.chain(data).flatten("divisionTeams").find({"id": 3222}).value();

Отговори:

2 за отговор № 1

Първо трябва да използвате map() да върна divisionTeams и след това изглаждане и намиране.

var data = [{"divisionName":"5th Grade - Green","divisionTeams":[{"id":3222,"name":"Columbia Ravens 5th","coach":"John Miller"},{"id":4299,"name":"D1 Spartans","coach":"Jacob Silverman"},{"id":3220,"name":"HC Elite OMalley 5th","coach":"Eddie OMalley"},{"id":3277,"name":"MD 3D 5th","coach":"Marty Libinski"},{"id":3275,"name":"Severn Elite Gold","coach":"Darryl Adams"},{"id":3224,"name":"Team Dedication 5th","coach":"Don Carpenter"}]},{"divisionName":"5th Grade - White","divisionTeams":[{"id":3225,"name":"CBSA Hoyas 5th Grade","coach":"Terrance Taylor"},{"id":3276,"name":"HC Elite 4th Tookes","coach":"Anthony Tookes"},{"id":3221,"name":"HC Elite Knisley 5th","coach":"Jordan Knisley"},{"id":3226,"name":"Randelstown Runnin Rebels 5th","coach":"Eric Levi"},{"id":3223,"name":"Up n Coming Clippers 5th","coach":"Brian Jackson"}]}]

var team = _.chain(data)
.map(e => e.divisionTeams)
.flatten()
.find({ "id": 3222})
.value();

console.log(JSON.stringify(team));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>