Как получить доступ к значению вложенного объекта - PullRequest
0 голосов
/ 03 апреля 2019
var allowed_ids = {
            332438809: "Bereznyak24",
            about: {
                address: "Gorky 84",
                average_sum: 50
            },
            489485425: "Bereznyak25",
            about: {
                address: "Sohnstr 41",
                average_sum: 100
            }
        };


var checked = childs[0].innerHTML.replace(/\D+/g, "");
console.log(allowed_ids.checked.about.address);

`

В проверенной переменной я сохраняю либо 332438809, либо 489485425. Сказав allowed_ids[checked], мы получим Bereznyak24 или Bereznyak 25. Но как мне получить доступ к значениям address и average_sum?allowed_ids.checked.about.address этот фрагмент кода неправильный и не дает правильного ответа.Спасибо!

Ответы [ 4 ]

1 голос
/ 03 апреля 2019

Ваш объект имеет дубликаты ключей. Было бы лучше хранить его так:

var allowed_ids = {
            332438809:{
             name: "Bereznyak24",
             about: {
                address: "Gorky 84",
                average_sum: 50
              }
            },
            489485425: {
             name:  "Bereznyak25",
             about: {
                address: "Sohnstr 41",
                average_sum: 100
             }
           }
        };
// Assuming checked = 489485425
console.log(allowed_ids[checked].about.address)
// Result = Sohnstr 41
1 голос
/ 03 апреля 2019

Ваш объект неверен.Вы должны использовать 332438809,489485425 как ключи и хранить "Bereznyak24","Bereznyak25" как свойство вложенного объекта.И используйте Обозначение в скобках для доступа к динамическим именам свойств

var allowed_ids = {
            332438809:{
              name:"Bereznyak24",
              address: "Gorky 84",
              average_sum: 50
            },
            489485425:{
                name:"Bereznyak25",
                address: "Sohnstr 41",
                average_sum: 100
            }
        };


var checked = '332438809';
console.log(allowed_ids[checked].address);
console.log(allowed_ids[checked].name);
console.log(allowed_ids[checked].average_sum);
1 голос
/ 03 апреля 2019

allowed_ids должен быть массивом, в противном случае вы перезаписываете клавишу about каждый раз, когда назначаете ее.

var allowed_ids = [
{
  332438809: "Bereznyak24",
  about: {
    address: "Gorky 84",
    average_sum: 50
  }
},
{
  489485425: "Bereznyak25",
  about: {
    address: "Sohnstr 41",
    average_sum: 100
  }
}];


var checked = childs[0].innerHTML.replace(/\D+/g, "");
console.log(allowed_ids[checked].about.address);
0 голосов
/ 03 апреля 2019

Если вы используете ключи 489485425 и 332438809, вы можете сделать следующее:

var allowed_ids = {
            332438809: {
                name: "Bereznyak24",
                address: "Gorky 84",
                average_sum: 50
            },
            489485425: {
                name: "Bereznyak25",
                address: "Sohnstr 41",
                average_sum: 100
            }
        };
        
        
        console.log(allowed_ids[489485425].name);
        console.log(allowed_ids[489485425].address);
        console.log(allowed_ids[489485425].average_sum);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...