Как я могу извлечь значение объекта из массива объектов массива с помощью JavaScript - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть массив объектов, который выглядит следующим образом:В настоящее время я использую поле 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"}

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Просто используйте 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);
0 голосов
/ 27 февраля 2019

Вы можете использовать карту, чтобы распечатать идентификатор электронной почты.Вы должны поставить , после каждого объекта, чтобы сделать его действительным.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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...