javascript - Hur man använder Lodash när data är undefined eller null
I min applikation, om data är odefinierad eller null och kommer från tjänsten, kommer min HTML inte att laddas och jag får felet "data är odefinierad" så jag försöker använda lodash, men vet inte hur man använder det..
I min nedanstående ts-fil
this._PartService.GetDataValues().subscribe(
result => {
this.distributionData = this._PartService.part_data.partMasterDataCompleteList[0].partMasterData.plantSupplies.plantSupply
}
Jag kommer att få "partMasterDataCompleteList" som undefined eller null om data inte finns där, så där försöker jag använda Lodash men jag vet inte hur man använder det
Svar #1
Lodash erbjuder ganska många metoder för att kontrollera och få det värde du vill ha från ett objekt.
_.get skulle faktiskt returnera värdet om det finns och skulle returnera undefined om det inte gör det.
_.has skulle kontrollera om värdet finns och returnera true om det gör det och false om det inte gör det.
_.hasIn skulle göra samma sak som _.has men skulle också kontrollera om detta är en ärvd egenskap.
_.result skulle faktiskt följa vägen och returnera värdet också, men med en stor skillnad ... det skulle köra alla funktioner längs vägen för att komma till värdet.
Exempel :
var data = { more: { result: 1}}
var data2 = _.create({ 'more': _.create({ 'result': 2 }) });
var data3 = { more: function() { return { result: 1} }}
console.log(_.get(data, 'more.result')) // 1
console.log(_.has(data, 'more.result')) // true
console.log(_.hasIn(data2, 'more.result')) // true
console.log(_.result(data3, 'more.result')) // 1<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>Svar #2
Du kanske vill använda funktionen _.get.
this.distributionData = _.get(this, '_PartService.part_data.partMasterDataCompleteList[0].partMasterData.plantSupplies.plantSupply')
