Açısal bir dizinin bir diziden bir eleman alma

oy
0

Eğik kullanarak - Bir dizi bir json dosyası var people[]bir dizi vardır,phones[]

Ben dönmek istiyorum

people[index].phones[index].phonenumber

(where people.personid = x and people.phones.phoneid = y) 

Herhangi bir öneri büyük takdir

Oluştur 27/11/2018 saat 18:13
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
1

Basitçe kullanmak filterdiziler üzerinde işlevi.

let person = people.filter(person => person.personId === x);
let phone = person && person.phones.filter(phone => phone.phoneId === y);

İşte bu çalışma örneği örnek StackBlitz olarak ref için.

Cevap 27/11/2018 saat 18:16
kaynak kullanıcı

oy
0

Bir filtre dizi döndüren bir filtre fonksiyonunu kullanarak

private filterPhone(x:number,y:number) : number { 
    let phoneNum : number;
    let person = this.people.filter(person => person.personId === x);
    let phone = person.length > 0 && person[0].phones.filter(phone => phone.phoneId === y);
    if(phone.length > 0 && phone[0].phoneNumber){
      phoneNum = phone[0].phoneNumber;
    }
    return phoneNum;
}

Yoksa bunu başarmak için FindIndex () işlevini kullanabilirsiniz.

private findPhoneById(x:any,y:any) : number { 
    let result : number = -1; 
    let personIndx = this.people.findIndex(p => p.personId === x);
    if(personIndx > result){
        let phoneIndx = this.people[personIndx].phones.findIndex(phone => phone.phoneId === y);
        if(phoneIndx > result){
          result = this.people[personIndx].phones[phoneIndx].phoneNumber;
        }
    }
    return result;
}

Cevap 28/11/2018 saat 00:56
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more