#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
со значением fromarr[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);