Как получить идентификатор для каждого ключа объекта - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть следующие данные json, ключи Содержать в объекте и эти ключи меняются регулярно

  "2461ba4c": [ // <----------- get the main key for each one 
    "4BD436",
    36.346,
    33.478,
  ],
  "2461b87c": [
    "06A128",
    34.628,
    33.584,

  ]

Я хотел бы получить ключи объекта для каждого массива.

Я сделал фильтр для ключей .filter(key => key ), но он дал мне все ключи объектов. Я хочу, чтобы каждый массив основных ключей объектов.

function data() {
  $.ajax('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', {
    type: 'GET',
    dataType: 'jsonp',
    timeout: 5000
  }).done(function(data, textStatus, jqXHR) {
    Object.keys(data)
      .map(key => data[key])
      .map((position) => ({
        lat: position[1],
        lng: position[2],
                        // <----------- Add the main key here for each array
      })).filter(position => position.lat && position.lng).forEach(i => {
        console.log(i.lat, i.lng, i.heading)
      })
  })
}

ожидаемый результат:

2461b87c, // <---main key
34.628,
33.584,

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

Вы можете создать новый объект obj внутри метода карты и назначить значение ключа, например,

const dataObj = {
    lat: position[1],
    lng: position[2],
    heading: key
  }

и вернуть объект.

Фрагмент следующим образом:

const data = {
  "2461ba4c": [
    "4BD436",
    36.346,
    33.478,
  ],
  "2461b87c": [
    "06A128",
    34.628,
    33.584,

  ]
}

const newData = Object.keys(data).map(key => {
  const position = data[key];
  const dataObj = {
    lat: position[1],
    lng: position[2],
    heading: key
  }
  return dataObj;
})

newData.filter(position => position.lat && position.lng).forEach(i => {
    console.log(i.lat, i.lng, i.heading)
})
0 голосов
/ 20 апреля 2020

Мы можем использовать in l oop для этого

let arr =  {"2461ba4c": [ 
    "4BD436",
    36.346,
    33.478,
  ],
  "2461b87c": [
    "06A128",
    34.628,
    33.584,
  ]};
  
for( let a in arr){
  document.write(a+"<br>"); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...