簡體   English   中英

如何使用javascript從對象數組中提取對象的值

[英]How can I extract the value of an object from an array of objects array using javascript

我有一個看起來像下面這個結構的對象數組,我想使用 javascript 或 jquery 來提取位於 serviceProviderContact 字段中的電子郵件,例如 mike@comapny .co.za。 目前我正在使用 providerName 字段來填充下拉列表,但我也想提取電子郵件。

providers: Array(4)
0: {providerId: 1, countryId: 1, providerName: "Vodacom", serviceProviderContact: "support@company.co.za"}
1: {providerId: 2, countryId: 1, providerName: "MTN", serviceProviderContact: "john@company.co.za"}
2: {providerId: 3, countryId: 1, providerName: "Cell C", serviceProviderContact: "mike@company.co.za"}
3: {providerId: 4, countryId: 1, providerName: "Telkom Mobile", serviceProviderContact: "Aplh@company.co.za"}

您可以使用 map 打印電子郵件 ID。 您必須在每個對象之后放置,以使其成為有效對象。 Object.values用於提取數組中對象中存在的所有值

 var providers = [{ 0: { providerId: 1, countryId: 1, providerName: "Vodacom", serviceProviderContact: "support@company.co.za" }, 1: { providerId: 2, countryId: 1, providerName: "MTN", serviceProviderContact: "john@company.co.za" }, 2: { providerId: 3, countryId: 1, providerName: "Cell C", serviceProviderContact: "mike@company.co.za" }, 3: { providerId: 4, countryId: 1, providerName: "Telkom Mobile", serviceProviderContact: "Aplh@company.co.za" } }] window.onload=function() { var k; var v; Object.values(providers[0]).forEach(e=>{ k=document.createElement('option'); v=document.createTextNode(e.providerName); k.appendChild(v) document.getElementById('a').appendChild(k)}) } function a(name) { var x=Object.values(providers[0]).filter((e) => e.providerName==name) alert(x[0].serviceProviderContact) }
 <select id="a" onchange='a(this.value)'> </select>

只需像這樣使用map

var emails = providers.map(e => e.serviceProviderContact);

示范:

 var providers = [{providerId: 1, countryId: 1, providerName: "Vodacom", serviceProviderContact: "support@company.co.za"}, {providerId: 2, countryId: 1, providerName: "MTN", serviceProviderContact: "john@company.co.za"} {providerId: 3, countryId: 1, providerName: "Cell C", serviceProviderContact: "mike@company.co.za"}, {providerId: 4, countryId: 1, providerName: "Telkom Mobile", serviceProviderContact: "Aplh@company.co.za"}]; var emails = providers.map(e => e.serviceProviderContact); console.log(emails);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM