0

Доброго времени. Есть такой вот объект.

  {
    location: {
      x: getRandomNum(300, 900),
      y: getRandomNum(100, 500)
    },
    offer: {
      title: getRandom(offerTitles),
      address: location.x, location.y,
      ....
      ....
    }
  }

Точнее есть массив, состоящий из таких вот объектов. address должна быть строкой со значениями координат. Как я могу получить доступ к location.x, location.y, чтобы прописать свойство offer.address? Сложность в том, что для каждого нового объекта - в location генерируется рандомное значение по-новому.

anxieter
  • 113
  • Откуда появляются эти объекты? Это json? Это литералы объектов в коде? – Grundy Nov 24 '17 at 13:43
  • видимо в начале в какую-то отдельную переменную всё генерировать, а потом уже вставлять в объект – Алексей Шиманский Nov 24 '17 at 13:43
  • @Igor, не дубликат, если объекты получаются например из json – Grundy Nov 24 '17 at 14:25
  • @Grundy принцип тот же - привязать подобъекты друг к другу дополнительным кодом –  Nov 24 '17 at 14:28

1 Answers1

0

Замените поля offer, address функциями

function getRandomNum(min, max) {
  return Math.floor(Math.random() * (max - min)) + min;
}

var obj = { location: { x: getRandomNum(300, 900), y: getRandomNum(100, 500) }, offer: function() { var obj = this; return { title: 'Title', address: function() { return obj.location.x + ', ' + obj.location.y; } } } }

console.log(obj.offer().address());