Как получить доступ к значению из объекта в массиве?

#javascript #arrays #json #object

#javascript #массивы #json #объект

Вопрос:

Как я могу получить доступ к значению Name и присвоить его переменной?

 var arr = [
    {Name: "Jason", 
    Title: "Student", 
    Image: "asdf", 
    Status: "Happy"}
];
  

Комментарии:

1. arr является массивом. Чтобы получить доступ к первому элементу в нем, выполните arr[0] . Теперь, чтобы получить доступ к Name свойству, вы можете сделать arr[0].Name

2. Вы можете получить к нему доступ, прочитав основные способы доступа к объектам в объектах в JS, такие как «точечная нотация». Начните с developer.mozilla.org/en/docs/Web/JavaScript/Reference /. … Или что-то более общее, например developer.mozilla.org/en-US/docs/Web/JavaScript/Guide . SO на самом деле не ориентирован на предоставление учебных пособий или элементарных методов — вам нужно будет найти другие способы получения этих знаний.

3. Большое спасибо за помощь!

Ответ №1:

Попробуйте это:

 var [{Name: name}] = arr;
  

При этом используется назначение деструктурирования ES6.

Во-первых, самый внешний [] — это способ ссылки на массив с правой стороны (в этом примере arr ). Объекты, помещенные в эти квадратные скобки (здесь есть только один), относятся к первому, второму и последующим значениям этого массива. Итак, здесь {Name: name} часть относится к первому (0-му) элементу массива. Другими словами, это эквивалентно

 var {Name: name} = arr[0];
  

Внутренний {} — это способ обращения к объектам и их разделения. {Name: name} говорит, чтобы найти Name свойство выделяемого объекта. Затем : name часть говорит переименовать его в name . Поскольку все это происходит в контексте var инструкции, результатом является объявление новой переменной с именем name и присвоение ей выбранного значения.

Вот более подробная последовательность:

 var            // Start a variable declaration 
  [            // Pick apart an array on the RHS, starting with 1st element
    {          // Pick apart an object
      Name     // Find the property named `Name` in that object
        :name  // Rename it; this is the variable that will be declared!
    }          // Done picking apart the object
  ]            // Done picking apart the array
  = arr;       // Specify the thing to deconstruct
  

Комментарии:

1. Новое для этого, это вернет массив из одного элемента?

2. @HadiHassan Нет, он объявит переменную name со значением from arr[0].Name .

Ответ №2:

Получить доступ к элементу по индексу 0 массива, используя обозначение в скобках, затем получить доступ к имени свойства Name объекта, используя обозначение в виде точки или скобки

 var arr = [
    {Name: "Jason", 
    Title: "Student", 
    Image: "asdf", 
    Status: "Happy"}
];

var name = arr[0].Name; // alternatively, `arr[0]["Name"]`
  

Комментарии:

1. почему это было отклонено? это правильный ответ с правильным объяснением.

2. Это правильный ответ на вопрос, который явно не подходит для SO. Мы не должны поощрять людей использовать SO в качестве замены лучшим способам изучения элементарных понятий, которые описаны на первой странице любого учебника. На большинство основных вопросов уже даны ответы, и поэтому их можно закрыть как дубликаты, чтобы не загромождать сайт, но этот НАСТОЛЬКО простой, что никто (по-видимому) никогда не думал задавать его раньше. Если вы собираетесь ответить на вопрос, по крайней мере, вы должны указать OP на хорошие учебные ресурсы, поскольку он, очевидно, их еще не нашел.

3. @DerekFu См. Точечную нотацию , скобочную нотацию

Ответ №3:

 var arr = [
    {Name: "Jason", 
    Title: "Student", 
    Image: "asdf", 
    Status: "Happy"}
];
var myname = arr[0]['Name'];
console.log(myname);