Может ли значение пары ключ / значение также быть ключом? - PullRequest
0 голосов
/ 09 апреля 2020

введите описание изображения здесь

В этом примере, чтобы записать значение свойств с ключами "title" и "Director", используется obj [key]. Так как мы уже в контексте выполнения объекта: mov ie, в этом примере. Obj в «Obj [ключ]» должен ссылаться на заголовок: «a», а Director: «b» и ключ к значению этих объектов, поэтому «a» и «b» отмечены как ключи, верно?

Могут ли эти значения типа ключа также регистрироваться с помощью obj [value]?


Это пример в курсе, но преподаватель плохо объясняет его, поэтому я вероятно, провел два часа в этой точке, пытаясь понять номенклатуру. Я надеюсь, что это правильно, а если нет; Я бы очень признателен за любую ошибку, которую я совершаю.

Заранее спасибо

Ответы [ 2 ]

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

Поместив код с картинки сюда для удобства, также немного изменили журналы, чтобы было понятно, какой ключ и какое значение:

const movie = {
  title: 'a',
  releaseYar: 2018,
  rating: 4.5,
  director: 'b'
};

showProperties(movie);

function showProperties(obj) {
  for (let key in obj) 
    if (typeof obj[key] === 'string') {
      console.log('key -->', key);
      console.log('value -->', obj[key]);
    }
}

Нет, 'a' и 'b' в этом примере не являются ключами, они являются значениями. В этом примере movie является объектом. Ключи объекта mov ie: title, releaseYear, rating и director. Кстати, клавиша - это просто еще одно имя для свойства.

В функции showProperties вы нажимаете oop через каждую клавишу - ie. на каждой итерации key - это сначала title, затем releaseYear и т. д. obj[key] в первой итерации будет movie['title'], что даст значение a.

В журналах консоли отображается ключ, за которым следует значение movie[key]. Отсюда ключ title и значение a для первого.

0 голосов
/ 09 апреля 2020

Пожалуйста, посмотрите на комментарий, чтобы понять код и запустить код.

const movie = {
  title: "SOmething",
  releaseDate: 2020,
  rating: 4.5,
  director: "Someone",
};
function showProperties(object) {
  for (const key in object) {
    const value = object[key]; // get value of the key
    console.log(key, value); // log everything
    // check if value is type string
    if (typeof value === "string") {
      console.log(key, value); // then only if value is string
    }
  }
}
showProperties(movie);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...